LlwiIEF1dGhvcnM6IElhbiBKYWNrc29uCi5cIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLlwiCi5cIiBUaGlzIGZpbGUgd2FzIGdlbmVyYXRlZCB3aXRoIHBvNGEuIFRyYW5zbGF0ZSB0aGUgc291cmNlIGZpbGUuCi5cIgouXCIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi5USCBkcGtnXC1zcGxpdCAxIDA3XC0wNFwtMjAxMSAiUHJvamV0IERlYmlhbiIgIlV0aWxpdGFpcmVzIGRlIGRwa2ciCi5TSCBOT00KZHBrZ1wtc3BsaXQgXC0gb3V0aWwgZGUgZOljb21wb3NpdGlvbi9yZWNvbXBvc2l0aW9uIGRlcyBwYXF1ZXRzIERlYmlhbgouCi5TSCBTWU5PUFNJUwpcZkJkcGtnXC1zcGxpdFxmUCBbXGZJb3B0aW9uXGZQLi4uXSBcZkljb21tYW5kXGZQCi4KLlNIIERFU0NSSVBUSU9OClxmQmRwa2dcLXNwbGl0XGZQIGTpY29tcG9zZSBsZXMgZmljaGllcnMgZCd1biBwYXF1ZXQgYmluYWlyZSBEZWJpYW4gZW4gcGFydGllcwpwbHVzIHBldGl0ZXMgKGV0IGxlcyByZWNvbXBvc2UpLCBwb3VyIHBlcm1ldHRyZSBsJ2VucmVnaXN0cmVtZW50IGRlcwpmaWNoaWVycyBkJ3VuIHBhcXVldCB2b2x1bWluZXV4IHN1ciBkZXMgbelkaWEgZGUgZmFpYmxlIGNhcGFjaXTpIHRlbHMgcXVlCmxlcyBkaXNxdWV0dGVzLgoKT24gcGV1dCBzJ2VuIHNlcnZpciCrXCDgIGxhIG1haW5cILsgYXZlYyBsZXMgb3B0aW9ucyBcZkJcLVwtc3BsaXRcZlAsIFxmQlwtXC1qb2luXGZQIGV0ClxmQlwtXC1pbmZvXGZQLgoKSWwgcG9zc+hkZSBhdXNzaSB1biBtb2RlIGF1dG9tYXRpcXVlLCBhcHBlbOkgYXZlYyBsJ29wdGlvbiBcZkJcLVwtYXV0b1xmUCwgZGFucwpsZXF1ZWwgaWwgY29uc2VydmUgc+lwYXLpbWVudCBkYW5zIHVuZSBmaWxlIGxlcyBwYXJ0aWVzIGNvbm51ZXMgb3UgcmVjb21wb3NlCmxlIGZpY2hpZXIgZCd1biBwYXF1ZXQgcXVhbmQgaWwgY29ubmHudCB0b3V0ZXMgc2VzIHBhcnRpZXMuIExlcyBvcHRpb25zClxmQlwtXC1saXN0cVxmUCBldCBcZkJcLVwtZGlzY2FyZFxmUCBwZXJtZXR0ZW50IGxhIGdlc3Rpb24gZGUgY2V0dGUgZmlsZS4KClRvdXRlcyBsZXMgb3DpcmF0aW9ucyBkZSBk6WNvbXBvc2l0aW9uLCByZWNvbXBvc2l0aW9uIG91IGRlIG1pc2UgZW4gZmlsZQpwcm9kdWlzZW50IGRlcyBtZXNzYWdlcyBzdXIgbGEgc29ydGllIHN0YW5kYXJkXCA7IGlscyBwZXV2ZW50IOp0cmUKdHJhbnF1aWxsZW1lbnQgaWdub3Lpcy4KLgouU0ggQ09NTUFOREVTCi5UUCAKXGZCXC1zXGZQLCBcZkJcLVwtc3BsaXRcZlAgXGZJYXJjaGl2ZVwtY29tcGzodGVcZlAgW1xmSXBy6WZpeGVcZlBdCkTpY29tcG9zZSBlbiBwbHVzaWV1cnMgcGFydGllcyB1biBwYXF1ZXQgYmluYWlyZSBEZWJpYW4uCgpMZSBub20gZCd1bmUgcGFydGllIGVzdFwgOiBcZklwculmaXhlXGZQXGZCLlxmUFxmSU5cZlBcZkJkZVxmUFxmSU1cZlBcZkIuZGViXGZQIG/5IFxmSU5cZlAgbGUKbnVt6XJvIGRlIHBhcnRpZSwgY29tbWVu52FudCDgIDEsIGV0IFxmSU1cZlAgZXN0IGxlIG5vbWJyZSB0b3RhbCBkZSBwYXJ0aWVzCihsZXMgZGV1eCBzb250IGRlcyBk6WNpbWF1eCkuCgpRdWFuZCBvbiBuZSBkb25uZSBwYXMgZGUgXGZJcHLpZml4ZVxmUCwgbGUgbm9tIGR1IGZpY2hpZXIgXGZJYXJjaGl2ZVwtY29tcGzodGVcZlAKZXN0IHV0aWxpc+ksIGVuIGluY2x1YW50IGxlIHLpcGVydG9pcmUgZXQgZW4gc3VwcHJpbWFudCB0b3V0IFxmQi5kZWJcZlAKcmVzdGFudC4KLlRQIApcZkJcLWpcZlAsIFxmQlwtXC1qb2luXGZQIFxmSXBhcnRpZVxmUC4uLgpSYXNzZW1ibGUgbGVzIHBhcnRpZXMgZCd1biBmaWNoaWVyLCByZWNvbXBvc2FudCBhaW5zaSBsZSBmaWNoaWVyIGQnb3JpZ2luZQp0ZWwgcXUnaWwg6XRhaXQgYXZhbnQgbGEgZOljb21wb3NpdGlvbi4KCkNlcyBwYXJ0aWVzLCBkb25u6WVzIGNvbW1lIGFyZ3VtZW50cywgZG9pdmVudCBhcHBhcnRlbmlyIHRvdXRlcyBhdSBt6m1lCmZpY2hpZXIgYmluYWlyZSBkJ29yaWdpbmUuIENoYXF1ZSBwYXJ0aWUgbmUgZG9pdCBhcHBhcmHudHJlIHF1J3VuZSBzZXVsZQpmb2lzIGRhbnMgbGEgbGlzdGUgZGVzIGFyZ3VtZW50c1wgOyBtYWlzIGlsIGVzdCBpbnV0aWxlIGRlIGxlcyBvcmRvbm5lci4KCkxlcyBwYXJ0aWVzIGRvaXZlbnQgYmllbiBz+3IgYXZvaXIg6XTpIGNy6ellcyBzZWxvbiBsZSBt6m1lIG1vZOhsZSAodGFpbGxlCm1heGltdW0gZGVzIHBhcnRpZXMpLCBxdWkgZXN0IGTpY2xhcukgYXUgbW9tZW50IGRlIGxhIGTpY29tcG9zaXRpb25cIDsgY2UgcXVpCnNpZ25pZmllIGVuIGZhaXQgcXUnZWxsZXMgZG9pdmVudCBhdm9pciDpdOkgY3Lp6WVzIHBhciBsZSBt6m1lIGFwcGVsIOAKXGZCZHBrZ1wtc3BsaXQgXC1cLXNwbGl0XGZQLgoKTGVzIHBhcnRpZXMgZGVzIG5vbXMgbmUgc29udCBwYXMgc2lnbmlmaWNhdGl2ZXMgcG91ciBsZSBwcm9jZXNzdXMgZGUKcmVjb21wb3NpdGlvbi4KCkJ5IGRlZmF1bHQgdGhlIG91dHB1dCBmaWxlIGlzIGNhbGxlZApcZklwYWNrYWdlXGZQXGZCX1xmUFxmSXZlcnNpb25cZlBcZkJfXGZQXGZJYXJjaFxmUFxmQi5kZWJcZlAuCgouVFAgClxmQlwtSVxmUCwgXGZCXC1cLWluZm9cZlAgXGZJcGFydGllXGZQLi4uCkFmZmljaGUgbGVzIHJlbnNlaWduZW1lbnRzIGNvbmNlcm5hbnQgdGVsbGUgcGFydGllIGRhbnMgdW4gZm9ybWF0IGxpc2libGUKcGFyIHRvdXMuIExlcyBhcmd1bWVudHMgbmUgcmVwculzZW50YW50IHBhcyBsYSBwYXJ0aWUgZCd1biBmaWNoaWVyIGJpbmFpcmUKbGUgZGlzZW50IGF1c3NpIHN1ciBsYSBzb3J0aWUgc3RhbmRhcmQuCi5UUCAKXGZCXC1hXGZQLCBcZkJcLVwtYXV0byBcLW9cZlAgXGZJZmljaGllclwtY29tcGxldCBwYXJ0aWVcZlAKTWV0IGVuIGZpbGUgYXV0b21hdGlxdWVtZW50IGxlcyBwYXJ0aWVzIGVuIHZ1ZSBkZSBsYSByZWNvbXBvc2l0aW9uIGQndW4KcGFxdWV0LgoKTGEgXGZJcGFydGllXGZQIGTpY2xhcullIGVzdCBleGFtaW7pZSBldCBjb21wYXLpZSBhdmVjIGxlcyBhdXRyZXMgcGFydGllcyBkdQpt6m1lIHBhcXVldCBxdWkgc2UgdHJvdXZlbnQgKHNpIGVsbGVzIGV4aXN0ZW50KSBkYW5zIGxhIGZpbGUuCgpRdWFuZCB0b3V0ZXMgbGVzIHBhcnRpZXMgZCd1biBmaWNoaWVyIChhdXF1ZWwgYXBwYXJ0aWVudCBsYSBwYXJ0aWUgXGZJcGFydFxmUCkKc29udCBwculzZW50ZXMsIGxlIGZpY2hpZXIgZXN0IHJlY29tcG9z6SBldCBjcunpIGVuIHRhbnQgcXVlClxmSWZpY2hpZXJcLWNvbXBsZXRcZlAgKGNlIGZpY2hpZXIgbmUgZGV2cmFpdCBwYXMgZOlq4CBleGlzdGVyLCBtYWlzIGNlIG4nZXN0CnBhcyB1bmUgZXJyZXVyKS4KClF1YW5kIGNlIG4nZXN0IHBhcyBsZSBjYXMsIGxhIHBhcnRpZSBcZklwYXJ0XGZQIGVzdCBtaXNlIGRhbnMgbGEgZmlsZSBldCBsZQpmaWNoaWVyIFxmSWZpY2hpZXJcLWNvbXBsZXRcZlAgbidlc3QgcGFzIGNy6ekuCgpJZiBcZklwYXJ0XGZQIGlzIG5vdCBhIHNwbGl0IGJpbmFyeSBwYWNrYWdlIHBhcnQgdGhlbiBcZkJkcGtnXC1zcGxpdFxmUCB3aWxsIGV4aXQKd2l0aCBzdGF0dXMgXGZCMVxmUDsgaWYgc29tZSBvdGhlciB0cm91YmxlIG9jY3VycyB0aGVuIGl0IHdpbGwgZXhpdCB3aXRoIHN0YXR1cwpcZkIyXGZQLgoKTCdvcHRpb24gXGZCXC1cLW91dHB1dFxmUCBvdSBcZkJcLW9cZlAgZG9pdCDqdHJlIGZvdXJuaWUgYXZlYyBsJ2FjdGlvbiBcZkJcLVwtYXV0b1xmUC4gU2kKY2VsYSBuJ+l0YWl0IHBhcyBvYmxpZ2F0b2lyZSwgbGUgcHJvZ3JhbW1lIGFwcGVsYW50IG5lIHNhdXJhaXQgcGFzIHF1ZWwKZmljaGllciBhdHRlbmRyZS4KLlRQIApcZkJcLWxcZlAsIFxmQlwtXC1saXN0cVxmUApMaXN0ZSBsZSBjb250ZW51IGQndW5lIGZpbGUgZGUgcGFxdWV0cyDgIHJlY29tcG9zZXIuCgpQb3VyIGNoYXF1ZSBmaWNoaWVyIHBvc3PpZGFudCBkZXMgcGFydGllcyBkYW5zIGxhIGZpbGUsIGNldHRlIGFjdGlvbiBkb25uZQpsZSBub20gZHUgZmljaGllciwgbGVzIHBhcnRpZXMgcHLpc2VudGVzIGRhbnMgbGEgZmlsZSBldCBsZSBub21icmUgdG90YWwKZCdvY3RldHMgY29uc2VydulzLgouVFAgClxmQlwtZFxmUCwgXGZCXC1cLWRpc2NhcmRcZlAgW1xmSXBhcXVldFxmUC4uLl0KQ2V0dGUgYWN0aW9uIGxhaXNzZSBkZSBj9HTpIGNlcnRhaW5lcyBwYXJ0aWVzIGRhbnMgbGEgZmlsZSwgY2VsbGVzIHF1aSBzb250CmVuIGF0dGVudGUgZGVzIGF1dHJlcyBwYXJ0aWVzIGNvbXBvc2FudCBsZSBwYXF1ZXQuCgpRdWFuZCBhdWN1biBcZklwYXF1ZXRcZlAgbidlc3QgZG9ubuksIGxhIGZpbGUgZXN0IHZpZOllXCA7IHNpIHVuIHBhcXVldCBlc3QKZG9ubuksIHNldWxlcyBsZXMgcGFydGllcyBkZSBjZSBwYXF1ZXQgc29udCBk6XRydWl0ZXMuCi5UUCAKXGZCXC1oXGZQLCBcZkJcLVwtaGVscFxmUApBZmZpY2hlIHVuIG1lc3NhZ2UgZCdhaWRlIHB1aXMgcXVpdHRlLgouVFAgClxmQlwtXC12ZXJzaW9uXGZQCkFmZmljaGUgbGUgbnVt6XJvIGRlIHZlcnNpb24gcHVpcyBxdWl0dGUuCi4KLlNIIE9QVElPTlMKLlRQIApcZkJcLVwtZGVwb3RkaXJcZlBcZkkgculwZXJ0b2lyZVxmUApJbmRpcXVlIHVuIHLpcGVydG9pcmUgZGlmZulyZW50IHBvdXIgbGEgZmlsZSBjb21wcmVuYW50IGxlcyBwYXJ0aWVzIGVuCmF0dGVudGUgZCd1bmUgcmVjb21wb3NpdGlvbiBhdXRvbWF0aXF1ZS4gUGFyIGTpZmF1dCwgYydlc3QgbGUgculwZXJ0b2lyZQpcZkIvdmFyL2xpYi9kcGtnXGZQLgouVFAgClxmQlwtU1xmUCwgXGZCXC1cLXBhcnRzaXplXGZQIFxmSWtpYmlcLW9jdGV0c1xmUApJbmRpcXVlLCBlbiBraWJpXC1vY3RldHMgKDEwMjQgb2N0ZXRzKSwgbGEgdGFpbGxlIG1heGltdW0gZCd1bmUgcGFydGllIGxvcnMKZCd1bmUgZOljb21wb3NpdGlvbi4gUGFyIGTpZmF1dCwgbGEgdGFpbGxlIG1heGltdW0gZXN0IGRlIDQ1MFwgS2lvLgouVFAgClxmQlwtb1xmUCwgXGZCXC1cLW91dHB1dFxmUCBcZklmaWNoaWVyXC1jb21wbGV0XGZQCkluZGlxdWUgbGUgbm9tIGR1IGZpY2hpZXIg4CBwcm9kdWlyZSBwb3VyIHVuZSByZWNvbXBvc2l0aW9uLgoKQ2VsYSBhbm51bGUgbGUgZmljaGllciBwYXIgZOlmYXV0IGxvcnMgZCd1bmUgcmVjb21wb3NpdGlvbiCrXCDgIGxhIG1haW5cILsKKFxmQlwtXC1qb2luXGZQKSBldCBjJ2VzdCBvYmxpZ2F0b2lyZSBwb3VyIHVuZSByZWNvbXBvc2l0aW9uIG91IHVuZSBtaXNlIGVuIGZpbGUKYXV0b21hdGlxdWVzIChcZkJcLVwtYXV0b1xmUCkuCi5UUCAKXGZCXC1RXGZQLCBcZkJcLVwtbnBxdWlldFxmUApQb3VyIHVuZSByZWNvbXBvc2l0aW9uIG91IHVuZSBtaXNlIGVuIGZpbGUgYXV0b21hdGlxdWVzLCBcZkJkcGtnXC1zcGxpdFxmUAphZmZpY2hlIGhhYml0dWVsbGVtZW50IHVuIG1lc3NhZ2Ugc2kgb24gbHVpIGRvbm5lIHVuZSBcZklwYXJ0aWVcZlAgcXVpIG4nZXN0CnBhcyB1bmUgcGFydGllIGQndW4gcGFxdWV0IGJpbmFpcmUuIENldHRlIG9wdGlvbiBzdXBwcmltZSBjZSBtZXNzYWdlXCA7IGNlbGEKcGVybWV0IOAgZGVzIHByb2dyYW1tZXMgY29tbWUgXGZCZHBrZ1xmUCBkZSBuZSBwYXMgYWZmaWNoZXIgZGUgZmF1eCBtZXNzYWdlcwpxdWFuZCBpbCBlc3QgY29uZnJvbnTpIOAgZGVzIHBhcXVldHMgZOljb21wb3PpcyBldCBkZXMgcGFxdWV0cyBub24KZOljb21wb3Ppcy4KLlRQIApcZkJcLVwtbXNkb3NcZlAKT2JsaWdlIGxlIG5vbSBkZXMgZmljaGllcnMgcHJvZHVpdHMgcGFyIFxmQlwtXC1zcGxpdFxmUCDgIHNlIGNvbmZvcm1lciDgIG1zZG9zLgoKQ2VsYSBzdXBwcmltZSBsZSBwculmaXhlIFwtIHNvaXQgY2VsdWkgcGFyIGTpZmF1dCBk6XJpdukgZHUgZmljaGllciBkJ2VudHLpZSwKc29pdCBjZWx1aSBkb25u6SBjb21tZSBhcmd1bWVudFwgOiBsZXMgY2FyYWN06HJlcyBhbHBoYW51belyaXF1ZXMgc29udCBlbgptaW51c2N1bGVzLCBsZXMgc2lnbmVzIHBsdXMgc29udCByZW1wbGFj6XMgcGFyIGRlcyBcZkJ4XGZQIGV0IHRvdXMgbGVzIGF1dHJlcwpjYXJhY3TocmVzIHNvbnQgYWJhbmRvbm7pcy4KCmxlIHLpc3VsdGF0IGVzdCBhbG9ycyB0cm9ucXXpIGF1dGFudCBxdWUgbuljZXNzYWlyZSBldCBkZXMgZmljaGllcnMgZGUgbGEKZm9ybWVcIDogXGZJcHJlZml4TlxmUFxmQm9mXGZQXGZJTVxmUFxmQi5kZWJcZlAgc29udCBjcunpcy4KLgouU0ggIkNPREUgREUgU09SVElFIgouVFAgClxmQjBcZlAKVGhlIHJlcXVlc3RlZCBzcGxpdCwgbWVyZ2UsIG9yIG90aGVyIGNvbW1hbmQgc3VjY2VlZGVkLiAgXGZCXC1cLWluZm9cZlAgY29tbWFuZHMKY291bnQgYXMgc3VjY2Vzc2Z1bCBldmVuIGlmIHRoZSBmaWxlcyBhcmUgbm90IGJpbmFyeSBwYWNrYWdlIHBhcnRzLgouVFAgClxmQjFcZlAKT25seSBvY2N1cnMgd2l0aCBcZkJcLVwtYXV0b1xmUCBhbmQgaW5kaWNhdGVzIHRoYXQgdGhlIFxmSXBhcnRcZlAgZmlsZSB3YXMgbm90IGEKYmluYXJ5IHBhY2thZ2UgcGFydC4KLlRQIApcZkIyXGZQClNvbWUga2luZCBvZiB0cm91YmxlIGhhcHBlbmVkLCBzdWNoIGFzIGEgc3lzdGVtIGNhbGwgZmFpbHVyZSwgYSBmaWxlIHRoYXQKbG9va2VkIGxpa2UgYSBwYWNrYWdlIHBhcnQgZmlsZSBidXQgd2FzIGNvcnJ1cHRlZCwgYSB1c2FnZSBlcnJvciBvciBzb21lCm90aGVyIHByb2JsZW0uCi4KLlNIIEJPR1VFUwpPbiBuZSBwZXV0IHBhcyBvYnRlbmlyIHRvdXMgbGVzIGTpdGFpbHMgdm91bHVzIHN1ciBsZXMgcGFxdWV0cyBwculzZW50cyBkYW5zCmxhIGZpbGUg4CBtb2lucyBkJ2FsbGVyIHZvaXIgc29pXC1t6m1lIGRhbnMgbGUgculwZXJ0b2lyZSBkZSBsYSBmaWxlLgoKT24gbmUgcGV1dCBwYXMgZmFjaWxlbWVudCBzYXZvaXIgc2kgdW4gZmljaGllciBlc3QgdnJhaW1lbnQgbGEgcGFydGllIGQndW4KcGFxdWV0IGJpbmFpcmUgb3Ugbm9uLgouCi5TSCBGSUNISUVSUwouVFAgClxmSS92YXIvbGliL2Rwa2cvcGFydHNcZlAKTGUgculwZXJ0b2lyZSBwYXIgZOlmYXV0IGRlIGxhIGZpbGUgY29udGVuYW50IGxlcyBmaWNoaWVycyBxdWkgYXR0ZW5kZW50IHVuZQpyZWNvbXBvc2l0aW9uIGF1dG9tYXRpcXVlLgoKTGVzIG5vbXMgZGUgZmljaGllcnMgdXRpbGlz6XMgZGFucyBjZSBy6XBlcnRvaXJlIHNvbnQgZGFucyB1biBmb3JtYXQKcGFydGljdWxpZXIg4CBcZkJkcGtnXC1zcGxpdFxmUCBldCBuZSBzb250IHNhbnMgZG91dGUgcGFzIHV0aWxlcyBwb3VyIGQnYXV0cmVzCnByb2dyYW1tZXNcIDsgZW4gdG91cyBjYXMgb24gbmUgcGV1dCBwYXMgY29tcHRlciBzdXIgY2UgZm9ybWF0IGRlIG5vbSBkZQpmaWNoaWVyLgouCi5TSCAiVk9JUiBBVVNTSSIKXGZCZGViXGZQKDUpLCBcZkJkZWJcLWNvbnRyb2xcZlAoNSksIFxmQmRwa2dcLWRlYlxmUCgxKSwgXGZCZHBrZ1xmUCgxKS4KLgouU0ggQVVURVVSCkNvcHlyaWdodCBcKGNvIDE5OTVcLTE5OTYgSWFuIEphY2tzb24KLnNwCkNlIHByb2dyYW1tZSBlc3QgdW4gbG9naWNpZWwgbGlicmVcIDsgdm95ZXogbGEgq1wgR05VIEdlbmVyYWwgUHVibGljIExpY2VuY2VcILsKdmVyc2lvbiAyIG91IHN1cOlyaWV1cmUgcG91ciBsZSBjb3B5cmlnaHQuIElsIG4neSBhIFBBUyBkZSBnYXJhbnRpZS4KLlNIIFRSQURVQ1RJT04KQXJpZWwgVkFSREkgPGFyaWVsLnZhcmRpQGZyZWVzYmVlLmZyPiwgMjAwMi4KUGhpbGlwcGUgQmF0YWlsbGVyLCAyMDA2LgpOaWNvbGFzIEZyYW7nb2lzLCAyMDA2LgpWZXVpbGxleiBzaWduYWxlciB0b3V0ZSBlcnJldXIg4CA8ZGViaWFuXC1sMTBuXC1mcmVuY2hAbGlzdHMuZGViaWFuLm9yZz4uCg==