MS4gSU5UUk9EVUNUSU9OCgpXaW5lIGVzdCB1biBwcm9ncmFtbWUgcXVpIHBlcm1ldCBkJ2V46WN1dGVyIGxlcyBsb2dpY2llbHMg6WNyaXRzCnBvdXIgTWljcm9zb2Z0IFdpbmRvd3MgKGNvbXByZW5hbnQgbGVzIGV46WN1dGFibGVzIERPUywgV2luZG93cyAzLngKZXQgV2luMzIpIHN1ciB1biBVbml4LiBJbCBlc3QgY29tcG9z6SBkJ3VuIGNoYXJnZXVyIHF1aSBjaGFyZ2UgZXQKZXjpY3V0ZSB1biBiaW5haXJlIE1pY3Jvc29mdCBXaW5kb3dzLCBhaW5zaSBxdWUgZCd1bmUgbGlicmFpcmllIChhcHBlbOllCldpbmVsaWIpIHF1aSBpbXBs6W1lbnRlIGxlcyBhcHBlbHMgZGUgbCdBUEkgZGUgV2luZG93cyBwYXIgbGV1cgrpcXVpdmFsZW50IFVuaXggb3UgWDExLiBDZXR0ZSBsaWJyYWlyaWUgcGV1dCDpZ2FsZW1lbnQg6nRyZSB1dGlsaXPpZQpwb3VyIHBvcnRlciBkdSBjb2RlIFdpbjMyIHZlcnMgdW4gZXjpY3V0YWJsZSBVbml4IG5hdGlmcy4KCldpbmUgZXN0IHVuIGxvZ2ljaWVsIGxpYnJlLCBkaXN0cmlidekgc291cyBHTlUgTEdQTDsgbGlzZXogbGUgZmljaGllcgpMSUNFTkNFIHBvdXIgbGVzIGTpdGFpbHMuCgoyLiBEyU1BUlJBR0UgUkFQSURFCgpN6m1lIHNpIHZvdXMgY29tcGlsZXog4CBwYXJ0aXIgZGVzIHNvdXJjZXMsIGlsIGVzdCByZWNvbW1hbmTpIGQndXRpbGlzZXIKbCdJbnN0YWxsYXRldXIgZGUgV2luZSBwb3VyIGNvbnN0cnVpcmUgZXQgaW5zdGFsbGVyIFdpbmUuIMAgcGFydGlyIGR1CnLpcGVydG9pcmUgbGUgcGx1cyDpbGV26SBkZXMgc291cmNlcyBkZSBXaW5lIChxdWkgY29udGllbnQgY2UgZmljaGllciksCmV46WN1dGV6IDoKCi4vdG9vbHMvd2luZWluc3RhbGwKClBvdXIgZXjpY3V0ZXIgbGVzIHByb2dyYW1tZXMsIHRhcGV6ICJ3aW5lIFtvcHRpb25zXSBwcm9ncmFtbWUiLiBQb3VyIGRlcwppbmZvcm1hdGlvblMgY29tcGzpbWVudGFpcmVzIGV0IGRlcyBy6XNvbHV0aW9ucyBkZSBwcm9ibOhtZXMsIGxpc2V6IGxlCnJlc3RlIGRlIGNlIGZpY2hpZXIsIGxlcyBwYWdlcyAibWFuIiBkZSBXaW5lLCBsZXMgZmljaGllcnMgZGFucyBsZQpy6XBlcnRvaXJlIGRlIGRvY3VtZW50YXRpb24gZGVzIHNvdXJjZXMgZGUgV2luZSAodm9pciAiRE9DVU1FTlRBVElPTiIpLApldCBzdXJ0b3V0IGxlcyBub21icmV1c2VzIGluZm9ybWF0aW9ucyBxdWUgdm91cyB0cm91dmVyZXogc3VyCmh0dHA6Ly93d3cud2luZWhxLm9yZy4KCjMuIENPTkZJR1VSQVRJT04gTslDRVNTQUlSRQoKUG91ciBjb21waWxlciBldCBleOljdXRlciBXaW5lLCB2b3VzIGRldmV6IGF2b2lyIHVuIGRlcyBzeXN06G1lcwpkJ2V4cGxvaXRhdGlvbiBxdWkgc3VpdCA6CgoJTGludXggdmVyc2lvbiAyLjAuMzYgb3Ugc3Vw6XJpZXVyCglGcmVlQlNEIDQueCBvciBGcmVlQlNEIDUtQ1VSUkVOVCBvdSBzdXDpcmlldXIKCVNvbGFyaXMgeDg2IDIuNSBvdSBzdXDpcmlldXIKCU5ldEJTRC1jdXJyZW50CgrJdGFudCBkb25u6SBxdWUgV2luZSBu6WNlc3NpdGUgdW5lIGltcGzpbWVudGF0aW9uIGRlcyAidGhyZWFkcyIgYXUgbml2ZWF1IGR1Cm5veWF1LCBzZXVscyBsZXMgc3lzdOhtZXMgZCdleHBsb2l0YXRpb24gbWVudGlvbm7pcyBjaS1oYXV0IHNvbnQgc3VwcG9ydOlzLgpEJ2F1dHJlcyBzeXN06G1lcyBkJ2V4cGxvaXRhdGlvbiBxdWkgaW1wbOltZW50ZW50IGxlcyAidGhyZWFkcyIgbm95YXUgcGV1dmVudArqdHJlIHN1cHBvcnTpcyBkYW5zIGxlIGZ1dHVyLgoKSW5mb3JtYXRpb24gTGludXggOgogIEJpZW4gcXVlIExpbnV4IDIuMi54IGRldnJhaXQgZW5jb3JlIGZvbnRpb25uZXIgZXQgcXVlIExpbnV4IDIuMC54IHBvdXJyYWl0CiAgZW5jb3JlIG1hcmNoZXIgKGRlcyB2ZXJzaW9ucyBwbHVzIGFuY2llbm5lcyBkZSAyLjAueCBhdmFpZW50IGRlcyBwbGFudGFnZXMKICBk+yBhdXggInRocmVhZHMiKSwgaWwgZXN0IHBy6WbpcmFibGUgZCdhdm9pciB1biBub3lhdSBy6WNlbnQgdGVsIHF1ZSAyLjQueC4KCkluZm9ybWF0aW9uIEZyZWVCU0QgOgogIEFzc3VyZXotdm91cyBkJ2F2b2lyIGxlcyBvcHRpb25zIFVTRVJfTERULCBTWVNWU0hNLCBTWVNWU0VNLCBhbmQgU1lTVk1TRwogIGVuY2xhbmNo6WVzIGRhbnMgdm90cmUgbm95YXUuCiAgUGx1cyBkJ2luZm9ybWF0aW9uIGVzdCBzaXR16WUgZGFucyBsJ2FyYnJlIGRlIHBvcnRzIDoKICBmdHA6Ly9mdHAuZnJlZWJzZC5vcmcvcHViL0ZyZWVCU0QvcG9ydHMvcG9ydHMvZW11bGF0b3JzL3dpbmUvCgpJbmZvcm1hdGlvbiBTb2xhcmlzIDoKICBJbCBlc3QgcGx1cyBxdWUgcHJvYmFibGUgcXVlIHZvdXMgZGV2cmV6IGNvbnN0cnVpcmUgV2luZSBhdmVjIGxhIGNoYe5uZQogIGQnb3V0aWxzIEdOVSAoZ2NjLCBnYXMsIGV0Yy4pLiBBdmVydGlzc2VtZW50IDogaW50YWxsZXIgZ2FzIG4nYXNzdXJlIHBhcwogIHF1J2lsIHNlcmEgdXRpbGlz6SBwYXIgZ2NjLiAgUmVjb21wbGlsZXIgZ2NjIGFwcuhzIGwnaW5zdGFsbGF0aW9uIGRlIGdhcwogIG91IGNy6WVyIHVuIGxpZW4gc3ltYm9saXF1ZSBkZSBjYywgYXMgZXQgbGQgdmVycyBsZXMgb3V0aWxzIEdOVSBzZW1ibGUKICBu6WNlc3NhaXJlLgoKSW5mb3JtYXRpb24gTmV0QlNEIDoKICBBc3N1cmV6LXZvdXMgZCdhdm9pciBsZXMgb3B0aW9ucyBVU0VSX0xEVCwgU1lTVlNITSwgU1lTVlNFTSwgYW5kIFNZU1ZNU0cKICBlbmNsYW5jaOllcyBkYW5zIHZvdHJlIG5veWF1LgoKU3lzdOhtZXMgZGUgZmljaGllciBzdXBwb3J06XMgOgogIFdpbmUgZGV2cmFpdCBmb25jdGlvbm5lciBzdXIgbGEgcGx1cGFydCBkZXMgc3lzdOhtZXMgZGUgZmljaGllci4gQ2VwZW5kYW50CiAgV2luZSBzJ2Fycup0ZXJhIGF1IGTpbWFycmFnZSBzaSB1bXNkb3MgZXN0IHV0aWxpc+kgcG91ciBsZSBy6XBlcnRvaXJlIC90bXAuCiAgUXVlbHF1ZXMgcHJvYmzobWVzIGRlIGNvbXBhdGliaWxpdOkgb250IGF1c3NpIOl06SByYXBwb3J06XMgc3VyCiAgbCd1dGlsaXNhdGlvbiBkZXMgZmljaGllcnMgYWNj6WTpcyBhdSB0cmF2ZXJzIGRlIFNhbWJhLiBFZ2FsZW1lbnQsIHB1aXNxdWUKICBOVEZTIG5lIHBldXQg6nRyZSB1dGlsaXPpIGVuIHPpY3VyaXTpIHF1J2F2ZWMgdW4gYWNj6HMgZW4gbGVjdHVyZSBzZXVsIHBvdXIKICBsZSBtb21lbnQsIG5vdXMgcmVjb21tYW5kb25zIGRlIG5lIHBhcyB1dGlsaXNlciBOVEZTLCBwYXJjZSBxdWUgbGVzCiAgcHJvZ3JhbW1lcyBXaW5kb3dzIG9uIGJlc29pbiBkZXMgYWNj6HMgZW4g6WNyaXR1cmUgcHJlc3F1ZSBwYXJ0b3V0LiBTaSB2b3VzCiAgYXZleiBkZXMgZmljaGllciBOVEZTLCBjb3BpZXogbGVzIHZlcnMgdW5lIGxvY2FsaXNhdGlvbiBhY2Nlc3NpYmxlIGVuCiAg6WNyaXR1cmUuCgpDb25maWd1cmF0aW9uIHJlcXVpc2UgZGUgYmFzZSA6ClZvdXMgYXZleiBiZXNvaW4gZCdhdm9pciBsZXMgZmljaGllcnMgImluY2x1ZGUiIGRlIFgxMSBpbnN0YWxs6XMKKGFwcGVs6XMgeGxpYjZnLWRldiBwb3VyIERlYmlhbiBldCBYRnJlZTg2LWRldmVsIHBvdXIgUmVkSGF0KS4KCkNvbmZpZ3VyYXRpb24gcmVxdWlzZSBkZXMgb3V0aWxzIGRlIGNvbXBpbGF0aW9uIDoKU3VyIGxlcyBzeXN06G1lIHg4NiwgZ2NjID49IDIuNy4yIGVzdCBu6WNlc3NhaXJlLiBMZXMgdmVyc2lvbnMgaW5m6XJpZXVyZXMg4ApsYSAyLjcuMi4zIHBldXZlbnQgY3LpZXIgZGVzIGVubnVpcyBsb3NycXVlIGNlcnRhaW5zIGZpY2hpZXJzIHNvbnQgY29tcGls6XMKYXZlYyBsJ29wdGltaXNhdGlvbiwgc291dmVudCBk+yDgIGRlcyBwcm9ibOhtZXMgZGUgZ2VzdGlvbiBkJ2VuLXTqdGUgZGUgZmljaGllci4KcGdjYyBuZSBmb25jdGlvbm5lIHBhcyBhY3R1ZWxsZW1lbnQgYXZlYyBXaW5lLiBMYSBjYXVzZSBkZSBjZSBwcm9ibOhtZSBlc3QKaW5jb25udWUuCgrJdmlkZW1tZW50LCB2b3VzIGF1cmV6IGJlc29pbiBkZSAibWFrZSIgKHRy6HMgcHJvYmFibGVtZW50IEdOVSBtYWtlKS4KClZvdXMgYXVyZXog6WdhbGVtZW50IGJlc29pbiBkZSBmbGV4IHZlcnNpb24gMi41IG91IHN1cOlyaWV1cmUgZXQgYmlzb24uClNpIHZvdXMgdXRpbGlzZXogUmVkSGF0IG91IERlYmlhbiwgaW5zdGFsbGV6IGxlcyBwYXF1ZXRzIGZsZXggZXQgYmlzb24uCgpMaWJyYWlyaWVzIG9wdGlvbm5lbGxlcyA6CiAgU2kgdm91cyB2b3VsZXogdW4gc3VwcG9ydCBkJ2ltcHJlc3Npb24g4CBsJ2FpZGUgZGUgQ1VQUywgU1ZQIGluc3RhbGxleiDgIGxhCiAgZm9pcyBsZXMgcGFja2FnZXMgY3VwcyBldCBjdXBzLWRldmVsLgoKUG91ciBsZSB0cmFpdGVtZW50IGF1dG9tYXRpcXVlIGRlcyBzY3JpcHRzIGRlIGxhIHPpcmllIGRlIHRlc3RzLCB2b3VzIGF1cmV6CulnYWxlbWVudCBiZXNvaW4gZGVzIGVuLXTqdGVzIGRlIGTpdmVsb3BwZW1lbnQgZGUgbGlicGVybCAocGFja2FnZSBsaWJwZXJsLWRldgpzb3VzIERlYmlhbikuCgpQb3VyIGxhIGNvbmZpZ3VyYXRpb24gbuljZXNzYWlyZSBzaSB2b3VzIGF2ZXogbCdpbnRlbnRpb24gZGUgY29uc3RydWlyZSBsYQpkb2N1bWVudGF0aW9uIHZvdXMtbeptZSB2b3lleiBsYSBzZWN0aW9uICJET0NVTUVOVEFUSU9OIi4KCjQuIENPTVBJTEFUSU9OCgpBdSBjYXMgb/kgdm91cyBjaG9pc2lzc2V6IGRlIG5lIHBhcyB1dGlsaXNlciB3aW5laW5zdGFsbCwgZXjpY3V0ZXIgbGVzIGNvbS0KbWFuZGVzIHN1aXZhbnRlcyBwb3VyIGNvbnN0cnVpcmUgV2luZSA6CgouL2NvbmZpZ3VyZQptYWtlIGRlcGVuZAptYWtlCgpDZWxhIHZhIGNvbnN0dWlyZSBsZSBwcm9ncmFtbWUgIndpbmUiIGV0IGRlIG5vbWJyZXV4IGJpbmFpcmVzL2xpYnJhaXJpZXMgZGUKc3VwcG9ydC4KTGUgcHJvZ3JhbW1lICJ3aW5lIiBjaGFyZ2VyYSBldCBleOljdXRlcmEgbGVzIGV46WN1dGFibGVzIFdpbmRvd3MuCkxhIGxpYnJhaXJpZSAibGlid2luZSIgKCJXaW5lbGliIikgcGV1dCDqdHJlIHV0aWxpc+llIHBvdXIgY29tcGlsZXIgZXQgbGllcgpsZSBjb2RlIHNvdXJjZSBXaW5kb3dzIHNvdXMgVW5peC4KClBvdXIgdm9pciBsZXMgb3B0aW9ucyBkZSBjb21waWxhdGlvbiwgdGFwZXogLi9jb25maWd1cmUgLS1oZWxwLgoKUG91ciBtZXR0cmUg4CBqb3VyIHVuZSBub3V2ZWxsZSB2ZXJzaW9uIGVuIHV0aWxpc2FudCBsZXMgZmljaGllcnMgcGF0Y2gsIHRvdXQKZCdhYm9yZCBhbGxlciBkYW5zIGxlIHLpcGVydG9pcmUgZGUgcGx1cyBoYXV0IG5pdmVhdSBkZSBsYSB2ZXJzaW9uIGFjdHVlbGxlCihjZWx1aSBxdWkgY29udGllbnQgY2UgZmljaGllciBSRUFETUUuZnIpLiBFbnN1aXRlIGZhaXJlIHVuICJtYWtlIGNsZWFuIiwgZXQKcGF0Y2hlciBsYSB2ZXJzaW9uIGF2ZWMgOgoKICAgIGd1bnppcCAtYyBwYXRjaC1maWxlIHwgcGF0Y2ggLXAxCgpBdmVjICJwYXRjaC1maWxlIiBxdWkgZXN0IGxlIG5vbSBkdSBmaWNoaWVyIGRlIHBhdGNoZSAocXVlbHF1ZSBjaG9zZSBkZQpzaW1pbGFpcmUg4CBXaW5lLXl5bW1kZC5kaWZmLmd6KS4gVm91cyBwb3V2ZXogculleOljdXRlciAiLi9jb25maWd1cmUiLCBldAplbnN1aXRlIHRhcGVyICJtYWtlIGRlcGVuZCAmJiBtYWtlIi4KCjUuIFNFVFVQCgpVbiBmb2lzIHF1ZSBXaW5lIGEg6XTpIGNvbnN0cnVpdCBjb3JyZWN0ZW1lbnQsIHZvdXMgcG91dmV6IHRhcGV6ICJtYWtlIGluc3RhbGwiOwpjZWxhIGluc3RhbGxlcmEgbCdleOljdXRhYmxlIHdpbmUsIGxlcyBwYWdlcyBtYW4gV2luZSBldCBxdWVscXVlcyBhdXRyZXMgZmljaGllcnMKbuljZXNzYWlyZXMuCgpOJ291YmxpZXogcGFzIGRlIGTpc2luc2F0bGxlciB0b3V0ZXMgbGVzIGluc3RhbGxhdGlvbnMgcHLpY+lkYW50ZXMgZGUgd2luZS4KRXNzYXlleiBzb2l0ICJkcGtnIC1yIHdpbmUiLCAicnBtIC1lIHdpbmUiIG91ICJtYWtlIHVuaW5zdGFsbCIgYXZhbnQKZCdpbnN0YWxsZXIuCgpTaSB2b3UgZOlzaXJleiBsaXJlIGxhIGRvY3VtZW50YXRpb24gZm91cm5pZSBhdmVjIGxlcyBzb3VyY2VzIGRlIFdpbmUsIHZveWV6IGxhCnNlY3Rpb24gIkRPQ1VNRU5UQVRJT04iLgoKV2luZSBhIGJlc29pbiBkJ3VuIGZpY2hpZXIgZGUgY29uZmlndXJhdGlvbiBub21t6SAiY29uZmlnIiBkYW5zIHZvdHJlIHLpcGVydG9pcmUKfi8ud2luZS4gTGUgZm9ybWF0IGRlIGNlIGZpY2hpZXIgZXN0IGV4cGxpcXXpIGRhbnMgbGEgcGFnZSBtYW4gZHUgZmljaGllciBkZQpjb25maWd1cmF0aW9uIChkb2N1bWVudGF0aW9uL3dpbmUuY29uZi5tYW4pLgpMZSBmaWNoaWVyIGRvY3VtZW50YXRpb24vc2FtcGxlcy9jb25maWcgY29udGllbnQgdW4gZXhlbXBsZSBkZSBmaWNoaWVyIGRlCmNvbmZpZ3VyYXRpb24gcXVpIGRvaXQg6nRyZSBhZGFwdOkgZXQgY29waekgdmVycyBsYSBsb2NhbGlzYXRpb24gbWVudGlvbm7pZQpjaS1kZXNzdXMuCgpOYXZpZ3VleiBkYW5zIGxhIHNlY3Rpb24gU3VwcG9ydCDgIGh0dHA6Ly93d3cud2luZWhxLm9yZy8gcG91ciBwbHVzIGQnYXN0dWNlcwpkZSBjb25maWd1cmF0aW9uLgoKRW4gY2FzIGQnZXJyZXVyIGRlIGNoYXJnZW1lbnQgZGUgbGlicmFpcmllIChwYXIgZXhlbXBsZQoiRXJyb3Igd2hpbGUgbG9hZGluZyBzaGFyZWQgbGlicmFyaWVzOiBsaWJudGRsbC5zbyIpLCBhc3N1cmV6IHZvdXMgZCdham91dGVyCmxlIGNoZW1pbiBkZXMgbGlicmFpcmllcyDgIC9ldGMvbGQuc28uY29uZiBldCBleOljdXRlciBsZGNvbmZpZyBlbiB0YW50IHF1ZSByb290LgoKNi4gRVjJQ1VURVIgREVTIFBST0dSQU1NRVMKCkxvcnNxdWUgbCdvbiBpbnZvcXVlIFdpbmUsIHZvdXMgcG91dmV6IHNw6WNpZmllciBsZSBjaGVtaW4gZW50aWVyIHZlcnMKbCdleOljdXRhYmxlIG91IHNldWxlbWVudCBsZSBub20gZGUgZmljaGllci4KClBvdXIgZXjpY3V0ZXIgU29saXRhaXJlIHBhciBleGVtcGxlIDoKCgl3aW5lIHNvbAkJICAgKGVuIHV0aWxpc2FudCBsZSBjaGVtaW4gZCdhY2PocyBzcOljaWZp6QoJd2luZSBzb2wuZXhlCQkJZGFucyBsZSBmaWNoaWVyICJjb25maWciIHBvdXIgbG9jYWxpc2VyCgkJCQkJbGUgZmljaGllcikKCgl3aW5lIGM6XFx3aW5kb3dzXFxzb2wuZXhlICAoZW4gdXRpbGlzYW50IGxhIHN5bnRheGUgZGUgZmljaGllcnMgRE9TKQoKCXdpbmUgL3Vzci93aW5kb3dzL3NvbC5leGUgIChlbiB1dGlsaXNhbnQgbGEgc3ludGF4ZSBkZSBmaWNoaWVycyBVbml4KQoKCXdpbmUgc29sLmV4ZSAvcGFyYW1ldHJlMSAtcGFyYW1ldHJlMiBwYXJhbWV0cmUzCgkJCShlbiBhcHBlbGFudCBsZSBwcm9ncmFtbWUgYXZlYyBkZXMgcGFyYW3odHJlcykKCk5vdGU6IGxlIGNoZW1pbiBkdSBmaWNoaWVyIHNlcmEg6WdhbGVtZW50IGFkZGl0aW9ubukgYXUgY2hlbWluIHBhciBk6WZhdXQKICAgICAgbG9yc3F1ZSBsZSBub20gZW50aWVyIGVzdCDpY3JpdCBzdXIgbGEgbGlnbmUgZGUgY29tbWFuZGUuCgpXaW5lIG4nZXN0IHBhcyBlbmNvcmUgY29tcGxldCwgYWluc2kgcXVlbHF1ZSBwcm9ncmFtbWVzIHBldXZlbnQgcGxhbnRlci4gU2Vsb24KcXVlIHZvdXMgYXZleiBpbnN0YWxs6SBjb3JyZWN0ZW1lbnQgd2luZWRiZyBkJ2FwcuhzIGRvY3VtZW50YXRpb24vZGVidWdnZXIuc2dtbCwKdm91cyBlbnRyZXJleiBkYW5zIGxlIGTpYm9ndWV1ciB2b3VzIHBlcm1ldHRhbnQgZCdlbnF16nRlciBldCBkZSBy6XNvdWRyZSBsZQpwcm9ibOhtZS4gUG91ciBwbHVzIGQnaW5mb3JtYXRpb24gc3VyIGxhIG1hbmnocmUgZGUgbGUgZmFpcmUsIHZldWlsbGV6IGxpcmUKbGUgZmljaGllciBkb2N1bWVudGF0aW9uL2RlYnVnZ2luZy5zZ21sLgoKVm91cyBkZXZyaWV6IHNhdXZlZ2FyZGVyIHRvdXMgdm9zIGZpY2hpZXIgaW1wb3J0YW50IGF1cXVlbHMgdm91cyBkb25uZXogYWNj6HMK4CBXaW5lIG91IHV0aWxpc2VyIHVuZSBjb3BpZSBzcOljaWFsZSBwb3VyIFdpbmUsIHB1aXNxdWUgZGFucyBjZXJ0YWluIGNhcyBkZXMKdXRpbGlzYXRldXJzIG9udCByYXBwb3J06SBkZXMgY29ycnVwdGlvbnMgZGUgZmljaGllcnMuIE5lIFBBUwrpeOljdXRlciBsJ0V4cGxvcmF0ZXVyLCBwYXIgZXhlbXBsZSwgc2kgdm91cyBuJ2F2ZXogcGFzIHVuZSBjb3BpZSBwcm9wcmUsCnB1aXNxdWUgaWwgcmVub21tZS9jb3Jyb21wdCBwYXJmb2lzIHBsdXNpZXVycyBy6XBlcnRvaXJlcy4gTeptZSBjZXJ0YWluZXMKYXBwbGljYXRpb24gTVMgdGVsbGUgTWVzc2VuZ2VyIHBhciBleGVtcGxlIG5lIHNvbnQgcGFzIHP7cmVzIHB1aXNxdSdlbGxlCnBldXZlbnQgbGFuY2VyIGwnRXhwbG9yYXRldXIgZGFucyBjZXJ0YWlucyBjYXMuIENlcnRhaW5lcyBjb3JydXB0aW9ucwpwYXJ0aWN1bGnocmVzIHRlbGxlICghJCEkISQhJC5wZnIpIHBldXQgZHUgbW9pbnMg6nRyZSBwYXJ0aWVsbGVtZW50CmZpeOllIGVuIHV0aWxpc2FudCBsYSBt6XRob2RlIGTpY3JpdGUgcGFyCmh0dHA6Ly9ob21lLm5leGdvLmRlL2FuZGkubW9oci9kb3dubG9hZC9kZWNvcnJ1cHRfZXhwbG9yZXIKCjcuIERPQ1VNRU5UQVRJT04KCkNlcnRhaW5lcyBkb2N1bWVudGF0aW9ucyAoZGl2ZXJzIEd1aWRlcyBXaW5lIGV0YykgcGV1dmVudCDqdHJlIHRyb3V26WVzIGRhbnMKbGUgculwZXJ0b2lyZSBkb2N1bWVudGF0aW9uLyAo4CBwYXJ0IGNldXggZGlzcG9uaWJsZXMg6WdhbGVtZW50IHN1ciBXaW5lSFEpCgpTaSB2b3Ugdm91bGV6IGNvbnN0cnVpcmUgbGVzIGZpY2hpZXIgU0dNTCBpY2ksIHZvdXMgcG91dmV6IGV46WN1dGVyIGxhCmNvbW1hbmRlICJtYWtlIGRvYyIgZGFucyBsZSBy6XBlcnRvaXJlIGRvY3VtZW50YXRpb24vLgpQb3VyIGxlIGZhaXJlIHZvdXMgYXVycmV6IGJlc29pbiBkZXMgb3V0aWxzIGR1IHBhY2thZ2Ugc2dtbCAocG91ciBkYjJodG1sLApkYjJwcywgZGIycGRmKSBub21t6XMgOgpEZWJpYW46CQlkb2Nib29rLXV0aWxzCk1hbmRyYWtlOglzZ21sLXRvb2xzLUEuQi5DLUREbWRrClN1U0U6CQlkb2Nia3Rscy1BLkJCLkMtREQKCjguIE9QVEVOSVIgUExVUyBEJ0lORk9STUFUSU9OUwoKV1dXOglCYXVjb3VwIGQnaW5mb3JtYXRpb25zIOAgcHJvcG9zIGRlIFdpbmUgc29udCBkaXNwb25pYmxlcyBzdXIgV2luZUhRIOAKCWh0dHA6Ly93d3cud2luZWhxLm9yZy8gOiBkaXZlcnMgR3VpZGVzIFdpbmUsIGJhc2UgZGUgZG9ubullCglkJ2FwcGxpY2F0aW9ucywgc3Vpdml0IGRlIGJvZ3Vlcy4gQydlc3QgcHJvYmFibGVtZW50IGxlIG1laWxsZXVyIHBvaW50CglkZSBk6XBhcnQuCgpGQVE6CUxhIEZvaXJlIEF1eCBRdWVzdGlvbnMgZGUgV2luZSBlc3QgbG9jYWxpc+llIOAgOgoJaHR0cDovL3d3dy53aW5laHEub3JnL0ZBUQoKVXNlbmV0OglWb3VzIHBvdXZleiBwYXJsZXIgZGVzIHByb2Js6G1lcyBvdSBy6XNvbHV0aW9ucyBlbiByZWxhdGlvbiBhdmVjIFdpbmUKCW91IG9wdGVuaXIgZGUgbCdhaWRlIHN1ciBjb21wLmVtdWxhdG9ycy5tcy13aW5kb3dzLndpbmUuCgpCdWdzOglSYXBwb3J0ZXogbGVzIGJvZ3VlcyDgIFdpbmUgQnVnemlsbGEg4CBodHRwOi8vYnVncy53aW5laHEub3JnCglTVlAgY2hlcmNoZXogdG91dCBkJ2Fib3JkIGRhbnMgbGEgYmFzZSBkZSBkb25u6WUgZGUgYnVnemlsbGEKCXBvdXIgY29udHL0bGVyIHF1ZSBsZSBwcm9ibOhtZSBuJ2VzdCBwYXMgZOlq4CBk6WNvdXZlcnQgYXZhbnQKCWRlIHBvc3RlciB1biByYXBwb3J0IGRlIGJvZ3VlLiBWb3VzIHBvdXZleiDpZ2FsZW1lbnQgcmFwcG9ydGVyCglkZXMgcmFwcG9ydHMgZGUgYm9ndWUg4CBjb21wLmVtdWxhdG9ycy5tcy13aW5kb3dzLndpbmUuCglTVlAgbGlzZXogbGUgZmljaGllciBkb2N1bWVudGF0aW9uL2J1Z3Muc2dtbCBwb3VyIGNvbm5h7nRyZSBsZXMKCWluZm9ybWF0aW9ucyBu6WNlc3NhaXJlcy4KCklSQzoJTCdhaWRlIGVuIGxpZ25lIGVzdCBkaXNwb25pYmxlIHN1ciBsZSBjYW5uYWwgI1dpbmVIUSBzdXIKCWlyYy5mcmVlbm9kZS5uZXQuCgpDVlM6CUwnYXJicmUgZGUgZOl2ZWxvcHBlbWVudCBhY3R1ZWwgZGUgV2luZSBlc3QgZGlzcG9uaWJsZSBhdSB0cmF2ZXJzCglkZSBDVlMuCglBbGxleiBzdXIgaHR0cDovL3d3dy53aW5laHEub3JnL2N2cyBwb3VyIHBsdXMgZCdpbmZvcm1hdGlvbnMKCk1haWxpbmcgbGlzdHM6CglJbCBleGlzdGUgZGUgbXVsdGlwbGVzIG1haWxpbmcgbGlzdHMgcG91ciBsZXMgZOl2ZWxvcHBldXJzIGRlIFdpbmU7CglyZXBwb3J0ZXotdm91cyDgIGh0dHA6Ly93d3cud2luZWhxLm9yZy9mb3J1bXMgcG91ciBkZSBwbHVzCglhbXBsZXMgaW5mb3JtYXRpb25zLgoKU2kgdm91cyBham91dGV6IHF1ZWxxdWVjaG9zZSBvdSBmaXhleiB1biBib2d1ZSwgZW52b3lleiB1biBwYXRjaCAoZGFucyBsZQpmb3JtYXQgJ2RpZmYgLXUnICkg4CBsYSBsaXN0ZSBkZSBkaWZmdXNpb24gd2luZS1wYXRjaGVzQHdpbmVocS5vcmcgIHBvdXIgc29uCmluY2x1c2lvbiBkYW5zIGxhIHByb2NoYWluZSB2ZXJzaW9uLgoKLS0KQWxleGFuZHJlIEp1bGxpYXJkCmp1bGxpYXJkQHdpbmVocS5vcmcK