QGMgVGhpcyBmaWxlIGlzIHByb2Nlc3NlZCBieSBHTlUncyBUZVhpbmZvCkBjIElmIHlvdSBtb2RpZnkgaXQgb3IgbW92ZSBpdCB0byBhbm90aGVyIGxvY2F0aW9uLCBtYWtlIHN1cmUgdGhhdApAYyBUZVhpbmZvIHdvcmtzICh0eXBlIGBtYWtlJyBpbiBkaXJlY3RvcnkgZG9jdW1lbnRhdGlvbikuCgpAYyBUaGlzIGlzIGEgbGlzdCBvZiB0aGUgV2luZSBhdXRob3JzIGFuZCBjb3B5cmlnaHQgaG9sZGVycy4KCldpbmUgaXMgYXZhaWxhYmxlIHRoYW5rcyB0byB0aGUgd29yayBvZjoKQm9iIEFtc3RhZHQsCkRhZyBBc2hlaW0sCk1hcnRpbiBBeW90dGUsCkthcmwgQmFja3N0cvZtLApQZXRlciBCYWp1c3osCk1hcmNlbCBCYXVyLApHZW9yZyBCZXllcmxlLApSb3NzIEJpcm8sCk1hcnRpbiBCb2VobWUsClV3ZSBCb25uZXMsCkVyaWsgQm9zLApGb25zIEJvdG1hbiwKSm9obiBCcmV6YWssCkFuZHJldyBCdWxoYWssCkpvaG4gQnVydG9uLApOaWVscyBkZSBDYXJwZW50aWVyLApHb3Jkb24gQ2hhZmZlZSwKSmltZW4gQ2hpbmcsClBhc2NhbCBDdW9xLApEYXZpZCBBLiBDdXRoYmVydCwKSHV3IEQuIE0uIERhdmllcywKUm9tYW4gRG9sZWpzaSwKRnJhbnMgdmFuIERvcnNzZWxhZXIsCkNocmlzIEZhaGVydHksCkNhcnN0ZW4gRmFsbGVzZW4sClBhdWwgRmFsc3RhZCwKRGF2aWQgRmF1cmUsCldlc2xleSBGaWxhcmRvLApDbGF1cyBGaXNjaGVyLApPbGFmIEZsZWJiZSwKQ2hhZCBGcmFsZWlnaCwKTWF0dGhldyBGcmFuY2lzLApQZXRlciBHYWxiYXZ5LApSYW1vbiBHYXJjaWEsCk1hdHRoZXcgR2hpbywKSm9keSBHb2xkYmVyZywKSGFucyBkZSBHcmFhZmYsCkNoYXJsZXMgTS4gSGFubnVtLApBZHJpYW4gSGFydmV5LApKb2huIEhhcnZleSwKQmlsbCBIYXdlcywKQ2FtZXJvbiBIZWlkZSwKSm9jaGVuIEhvZW5pY2tlLApPbm5vIEhvdmVycywKSmVmZnJleSBIc3UsClBldGVyIEh1bm5pc2V0dCwKTWlndWVsIGRlIEljYXphLApKdWtrYSBJaXZvbmVuLApMZWUgSmFla2lsLApBbGV4YW5kcmUgSnVsbGlhcmQsCkJhbmcgSnVuLVlvdW5nLApQYXZlbCBLYW5rb3Zza3ksCkpvY2hlbiBLYXJyZXIsCkFuZHJlYXMgS2lyc2NoYmF1bSwKUmVpbiBLbGF6ZXMsCkFsYnJlY2h0IEtsZWluZSwKRXJpYyBLb2hsLApKb24gS29ucmF0aCwKQWxleCBLb3JvYmthLApHcmVnIEtyZWlkZXIsCkFuYW5kIEt1bXJpYSwKT3ZlIEvldmVuLApTY290dCBBLiBMYWlyZCwKRGF2aWQgTGVlIExhbWJlcnQsCkFuZHJldyBMZXd5Y2t5LApQZXIgTGluZHN0cvZtLApNYXJ0aW4gdm9uIExvZXdpcywKTWljaGllbCB2YW4gTG9vbiwKS2VubmV0aCBNYWNEb25hbGQsClBldGVyIE1hY0RvbmFsZCwKV2lsbGlhbSBNYWdybywKSnVlcmdlbiBNYXJxdWFyZHQsClJpY2FyZG8gTWFzc2FybywKTWFyY3VzIE1laXNzbmVyLApHcmFoYW0gTWVuaGVubml0dCwKRGF2aWQgTWV0Y2FsZmUsCkJydWNlIE1pbG5lciwKU3RlZmZlbiBNb2VsbGVyLApBbmRyZWFzIE1vaHIsCkphbWVzIE1vb2R5LApQaGlsaXBwZSBEZSBNdXl0ZXIsCkl0YWkgTmFoc2hvbiwKS3Jpc3RpYW4gTmllbHNlbiwKSGVucmlrIE9sc2VuLApNaWNoYWVsIFBhdHJhLApEaW1pdHJpZSBPLiBQYXVuLApKaW0gUGV0ZXJzb24sCkVyaWMgUG91ZWNoLApSb2JlcnQgUG91bGlvdCwKQWxleCBQcmllbSwKUGV0dGVyIFJlaW5ob2xkdHNlbiwKS2VpdGggUmV5bm9sZHMsClNsYXZlbiBSZXppYywKSm9obiBSaWNoYXJkc29uLApSaWNrIFJpY2hhcmRzb24sCkRvdWcgUmlkZ3dheSwKQmVybmhhcmQgUm9zZW5rcmFlbnplciwKSm9oYW5uZXMgUnVzY2hlaW5za2ksClRob21hcyBTYW5kZm9yZCwKQ29uc3RhbnRpbmUgU2FwdW50emFraXMsClBhYmxvIFNhcmF0eGFnYSwKRGFuaWVsIFNjaGVwbGVyLApQZXRlciBTY2hsYWlsZSwKVWxyaWNoIFNjaG1pZCwKQmVybmQgU2NobWlkdCwKSnVlcmdlbiBTY2htaWVkLApJbmdvIFNjaG5laWRlciwKVmljdG9yIFNjaG5laWRlciwKWW5ndmkgU2lndXJqb25zc29uLApTdGVwaGVuIFNpbW1vbnMsClJpY2sgU2xhZGtleSwKV2lsbGlhbSBTbWl0aCwKRG9taW5payBTdHJhc3NlciwKUGF0cmlrIFN0cmlkdmFsbCwKVmFkaW0gU3RyaXpoZXZza3ksCkJlcnRobyBTdHVsdGllbnMsCkVyaWsgU3ZlbmRzZW4sClRyaXN0YW4gVGFycmFudCwKQW5kcmV3IFRheWxvciwKRHVuY2FuIEMgVGhvbXNvbiwKR29yYW4gVGh5bmksCkppbW15IFRpcnRhd2FuZ3NhLApKb24gVG9tYnMsCkxpbnVzIFRvcnZhbGRzLApHcmVnb3J5IFRydWJldHNrb3ksClBldHJpIFR1b21vbGEsCk1pY2hhZWwgVmVrc2xlciwKU3ZlbiBWZXJkb29sYWVnZSwKUm9uYW4gV2FpZGUsCkVyaWMgV2FybmtlLApNYW5mcmVkIFdlaWNoZWwsClVscmljaCBXZWlnYW5kLApNb3J0ZW4gV2VsaW5kZXIsCkxlbiBXaGl0ZSwKTGF3c29uIFdoaXRuZXksCkphbiBXaWxsYW1vd2l1cywKQ2FybCBXaWxsaWFtcywKS2FybCBHdWVudGVyIFd1ZW5zY2gsCkVyaWMgWW91bmdkYWxlLApKYW1lcyBZb3VuZ21hbiwKTmlraXRhIFYuIFlvdXNoY2hlbmtvLApNaWtvbGFqIFphbGV3c2tpLApKb2huIFplcm8sCmFuZCBMdWl6IE90YXZpbyBMLiBab3J6ZWxsYS4K