ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gICBfIF9fX18gIF8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19ffCB8IHwgfCAgXyBcfCB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyBfX3wgfCB8IHwgfF8pIHwgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoX198IHxffCB8ICBfIDx8IHxfX18KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX19ffFxfX18vfF98IFxfXF9fX19ffAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYmN1cmwgYmluZGluZ3MKCiBDcmVhdGl2ZSBwZW9wbGUgaGF2ZSB3cml0dGVuIGJpbmRpbmdzIG9yIGludGVyZmFjZXMgZm9yIHZhcmlvdXMgZW52aXJvbm1lbnRzCiBhbmQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzLiBVc2luZyBvbmUgb2YgdGhlc2UgYWxsb3dzIHlvdSB0byB0YWtlIGFkdmFudGFnZSBvZgogY3VybCBwb3dlcnMgZnJvbSB3aXRoaW4geW91ciBmYXZvdXJpdGUgbGFuZ3VhZ2Ugb3Igc3lzdGVtLgoKIFRoaXMgaXMgYSBsaXN0IG9mIGFsbCBrbm93biBpbnRlcmZhY2VzIGFzIG9mIHRoaXMgd3JpdGluZy4KCiBUaGUgYmluZGluZ3MgbGlzdGVkIGJlbG93IGFyZSBub3QgcGFydCBvZiB0aGUgY3VybC9saWJjdXJsIGRpc3RyaWJ1dGlvbgogYXJjaGl2ZXMsIGJ1dCBtdXN0IGJlIGRvd25sb2FkZWQgYW5kIGluc3RhbGxlZCBzZXBhcmF0ZWx5LgoKQWRhOTUKCiAgV3JpdHR0ZW4gYnkgQW5kcmVhcyBBbG1yb3RoCiAgaHR0cDovL3d3dy5hbG1yb3RoLmNvbS9hZGFjdXJsL2luZGV4Lmh0bWwKCkJhc2ljCgogIFNjcmlwdEJhc2ljIGJpbmRpbmdzIHRvIGxpYmN1cmwuIFdyaXR0dGVuIGJ5IFBldGVyIFZlcmhhcwogIGh0dHA6Ly9zY3JpcHRiYXNpYy5jb20vCgpDCiAgbGliY3VybCBpcyBhIEMgbGlicmFyeSBpbiBpdHNlbGYhCiAgaHR0cDovL2N1cmwuaGF4eC5zZS9saWJjdXJsLwoKQysrCgogIFdyaXR0ZW4gYnkgSmVhbi1QaGlsaXBwZSBCYXJyZXR0ZS1MYVBpZXJyZQogIGh0dHA6Ly9jdXJscHAub3JnLwoKQ2gKCiAgV3JpdHRlbiBieSBTdGVwaGVuIE5lc3RpbmdlciBhbmQgSm9uYXRoYW4gUm9nYWRvCiAgaHR0cDovL2NoY3VybC5zb3VyY2Vmb3JnZS5uZXQvCgpDb2NvYQoKICBCQkhUVFA6IHdyaXR0ZW4gYnkgQnJ1bm8gZGUgQ2FydmFsaG8KICBodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9kZWNhcnZhbGhvL0JCSFRUUAoKICBjdXJsaGFuZGxlOiBXcml0dGVuIGJ5IERhbiBXb29kCiAgaHR0cDovL2N1cmxoYW5kbGUuc291cmNlZm9yZ2UubmV0LwoKRAoKICBXcml0dGVuIGJ5IEtlbm5ldGggQm9nZXJ0CiAgaHR0cDovL2N1cmwuaGF4eC5zZS9saWJjdXJsL2QvCgpEeWxhbgoKICBXcml0dGVuIGJ5IENocmlzIERvdWJsZQogIGh0dHA6Ly9keWxhbmxpYnMuc291cmNlZm9yZ2UubmV0LwoKRWlmZmVsCgogIFdyaXR0ZW4gYnkgRWlmZmVsIFNvZnR3YXJlCiAgaHR0cDovL2N1cmwuaGF4eC5zZS9saWJjdXJsL2VpZmZlbC8KCkV1cGhvcmlhCgogIFdyaXR0ZW4gYnkgUmF5IFNtaXRoCiAgaHR0cDovL3JheXMtd2ViLmNvbS9ldWxpYmN1cmwuaHRtCgpGYWxjb24KCiAgaHR0cDovL3d3dy5mYWxjb25wbC5vcmcvaW5kZXguZnRkP3BhZ2VfaWQ9cHJqcyZwcmpfaWQ9Y3VybAoKRmVyaXRlCgogIFdyaXR0ZW4gYnkgUGF1bCBRdWVybmEKICBodHRwOi8vd3d3LmZlcml0ZS5vcmcvCgpHYW1iYXMKCiAgaHR0cDovL2dhbWJhcy5zb3VyY2Vmb3JnZS5uZXQKCmdsaWIvR1RLKwoKICBXcml0dGVuIGJ5IFJpY2hhcmQgQXR0ZXJlcgogIGh0dHA6Ly9hdHRlcmVyLm5ldC9nbGliY3VybC8KCkd1aWxlOgoKICBXcml0dGVuIGJ5IE1pY2hhZWwgTC4gR3JhbgogIGh0dHA6Ly93d3cubG9uZWx5Y2FjdHVzLmNvbS9ndWlsZS1jdXJsLmh0bWwKCkhhc2tlbGwKCiAgV3JpdHRlbiBieSBHYWxvaXMsIEluYwogIGh0dHA6Ly9oYWNrYWdlLmhhc2tlbGwub3JnL2NnaS1iaW4vaGFja2FnZS1zY3JpcHRzL3BhY2thZ2UvY3VybAoKSmF2YQoKICBNYWludGFpbmVkIGJ5IFtibGFua10KICBodHRwOi8vY3VybC5oYXh4LnNlL2xpYmN1cmwvamF2YS8KCkp1bGlhCgogIFdyaXR0ZW4gYnkgUGF1bCBIb3dlCiAgaHR0cHM6Ly9naXRodWIuY29tL2ZvcmlvL0N1cmwuamwKCkxpc3AKCiAgV3JpdHRlbiBieSBMaWFtIEhlYWx5CiAgaHR0cDovL2NvbW1vbi1saXNwLm5ldC9wcm9qZWN0L2NsLWN1cmwvCgpMdWEKCiAgbHVhY3VybCBieSBBbGV4YW5kZXIgTWFyaW5vdgogIGh0dHA6Ly9sdWFjdXJsLmx1YWZvcmdlLm5ldC8KCiAgTHVhLWNVUkwgYnkgSvxyZ2VuIEj2dHplbAogIGh0dHA6Ly9sdWFmb3JnZS5uZXQvcHJvamVjdHMvbHVhLWN1cmwvCgpNb25vCgogIFdyaXR0ZW4gYnkgSmVmZnJleSBQaGlsbGlwcwogIGh0dHA6Ly9mb3JnZS5ub3ZlbGwuY29tL21vZHVsZXMveGZtb2QvcHJvamVjdC8/bGliY3VybC1tb25vCgouTkVUCgogIGxpYmN1cmwtbmV0IGJ5IEplZmZyZXkgUGhpbGxpcHMKICBodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYmN1cmwtbmV0LwoKbm9kZS5qcwoKICBub2RlLWxpYmN1cmwgYnkgSm9uYXRoYW4gQ2FyZG9zbyBNYWNoYWRvCiAgaHR0cHM6Ly9naXRodWIuY29tL0pDTWFpcy9ub2RlLWxpYmN1cmwKCk9iamVjdC1QYXNjYWwKCiAgRnJlZSBQYXNjYWwsIERlbHBoaSBhbmQgS3lsaXggYmluZGluZyB3cml0dGVuIGJ5IENocmlzdG9waGUgRXNwZXJuLgogIGh0dHA6Ly93d3cudGVrb29sLmNvbS9vcGN1cmwKCk8nQ2FtbAoKICBXcml0dGVuIGJ5IExhcnMgTmlsc3NvbgogIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvb2N1cmwvCgpQYXNjYWwKCiAgRnJlZSBQYXNjYWwsIERlbHBoaSBhbmQgS3lsaXggYmluZGluZyB3cml0dGVuIGJ5IEplZmZyZXkgUG9obG1leWVyLgogIGh0dHA6Ly9ob3VzdG9uLnF1aWsuY29tL2prcC9jdXJscGFzLwoKUGVybAoKICBNYWludGFpbmVkIGJ5IENyaXMgQmFpbGlmZgogIGh0dHA6Ly9jdXJsLmhheHguc2UvbGliY3VybC9wZXJsLwoKUEhQCgogIFdyaXR0ZW4gYnkgU3RlcmxpbmcgSHVnaGVzCiAgaHR0cDovL2N1cmwuaGF4eC5zZS9saWJjdXJsL3BocC8KClBvc3RncmVTUUwKCiAgV3JpdHRlbiBieSBHaWFuIFBhb2xvIENpY2VyaQogIGh0dHA6Ly9nYm9yZy5wb3N0Z3Jlc3FsLm9yZy9wcm9qZWN0L3BnY3VybC9wcm9qZGlzcGxheS5waHAKClB5dGhvbgoKICBQeWNVUkwgYnkgS2pldGlsIEphY29ic2VuCiAgaHR0cDovL3B5Y3VybC5zb3VyY2Vmb3JnZS5uZXQvCgpSCgogIFJDdXJsIGJ5IER1bmNhbiBUZW1wbGUgTGFuZwogIGh0dHA6Ly93d3cub21lZ2FoYXQub3JnL1JDdXJsLwoKUmV4eAoKICBXcml0dGVuIE1hcmsgSGVzc2xpbmcKICBodHRwOi8vcmV4eGN1cmwuc291cmNlZm9yZ2UubmV0LwoKUlBHCgogIFN1cHBvcnQgZm9yIElMRS9SUEcgb24gT1MvNDAwIGlzIGluY2x1ZGVkIGluIHNvdXJjZSBkaXN0cmlidXRpb24KICBodHRwOi8vY3VybC5oYXh4LnNlL2xpYmN1cmwvCiAgU2VlIHBhY2thZ2VzL09TNDAwL1JFQURNRS5PUzQwMCBhbmQgcGFja2FnZXMvT1M0MDAvY3VybC5pbmMuaW4KClJ1YnkKCiAgY3VyYiAtIHdyaXR0ZW4gYnkgUm9zcyBCYW1mb3JkCiAgaHR0cDovL2N1cmIucnVieWZvcmdlLm9yZy8KCiAgcnVieS1jdXJsLW11bHRpIC0gd3JpdHRlbiBieSBLcmlzdGphbiBQZXR1cnNzb24gYW5kIEtlaXRoIFJhcmljawogIGh0dHA6Ly9jdXJsLW11bHRpLnJ1Ynlmb3JnZS5vcmcvCgpTY2hlbWUKCiAgQmlnbG9vIGJpbmRpbmcgYnkgS2lyaWxsIExpc292c2t5CiAgaHR0cDovL2N1cmwuaGF4eC5zZS9saWJjdXJsL3NjaGVtZS8KClMtTGFuZwoKICBTLUxhbmcgYmluZGluZyBieSBKb2huIEUgRGF2aXMKICBodHRwOi8vd3d3LmplZHNvZnQub3JnL3NsYW5nL21vZHVsZXMvY3VybC5odG1sCgpTbWFsbHRhbGsKCiAgU21hbGx0YWxrIGJpbmRpbmcgYnkgRGFuaWwgT3NpcGNodWsKICBodHRwOi8vd3d3LnNxdWVha3NvdXJjZS5jb20vQ3VybFBsdWdpbi8KClNQLUZvcnRoCgogIFNQLUZvcnRoIGJpbmRpbmcgYnkgeWdyZWsKICBodHRwOi8vd3d3LmZvcnRoLm9yZy5ydS9+YWMvbGliL2xpbi9jdXJsLwoKU1BMCgogIFNQTCBiaW5kaW5nIGJ5IENsaWZmb3JkIFdvbGYKICBodHRwOi8vd3d3LmNsaWZmb3JkLmF0L3NwbC8KClRjbAoKICBUY2xjdXJsIGJ5IEFuZHLpcyBHYXJj7WEKICBodHRwOi8vcGVyc29uYWwxLmlkZGVvLmVzL2FuZHJlc2dhcmNpL3RjbGN1cmwvZW5nbGlzaC9kb2NzLmh0bWwKClZpc3VhbCBCYXNpYwoKICBsaWJjdXJsLXZiIGJ5IEplZmZyZXkgUGhpbGxpcHMKICBodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2xpYmN1cmwtdmIvCgpWaXN1YWwgRm94cHJvCgogIGJ5IENhcmxvcyBBbGxvYXR0aQogIGh0dHA6Ly93d3cuY3RsMzIuY29tLmFyL2xpYmN1cmwuYXNwCgpRCiAgVGhlIGxpYmN1cmwgbW9kdWxlIGlzIHBhcnQgb2YgdGhlIGRlZmF1bHQgaW5zdGFsbAogIGh0dHA6Ly9xLWxhbmcuc291cmNlZm9yZ2UubmV0LwoKd3hXaWRnZXRzCgogIFdyaXR0ZW4gYnkgQ2FzZXkgTydEb25uZWxsCiAgaHR0cDovL3d4Y29kZS5zb3VyY2Vmb3JnZS5uZXQvY29tcG9uZW50cy93eGN1cmwvCgpYQkxpdGUKCiAgV3JpdHRlbiBieSBEYXZpZCBTemFmcmFuc2tpCiAgaHR0cDovL3BlcnNvLndhbmFkb28uZnIveGJsaXRlL2xpYnJhcmllcy5odG1sCg==