JWdsb2JhbCBWRVJTSU9OICBAUEFDS0FHRV9WRVJTSU9OQAolZ2xvYmFsIE1BSk9SX1ZFUlNJT04gIEBNQUdJQ0tfTUFKT1JfVkVSU0lPTkAKJWdsb2JhbCBQYXRjaGxldmVsICBAUEFDS0FHRV9SRUxFQVNFQAoKTmFtZTogICAgICAgICAgIEBQQUNLQUdFX05BTUVAClZlcnNpb246ICAgICAgICAle1ZFUlNJT059ClJlbGVhc2U6ICAgICAgICAle1BhdGNobGV2ZWx9ClN1bW1hcnk6ICAgICAgICBVc2UgSW1hZ2VNYWdpY2sgdG8gY29udmVydCwgZWRpdCwgb3IgY29tcG9zZSBiaXRtYXAgaW1hZ2VzIGluIGEgdmFyaWV0eSBvZiBmb3JtYXRzLiAgSW4gYWRkaXRpb24gcmVzaXplLCByb3RhdGUsIHNoZWFyLCBkaXN0b3J0IGFuZCB0cmFuc2Zvcm0gaW1hZ2VzLgpHcm91cDogICAgICAgICAgQXBwbGljYXRpb25zL011bHRpbWVkaWEKTGljZW5zZTogICAgICAgIGh0dHA6Ly93d3cuaW1hZ2VtYWdpY2sub3JnL3NjcmlwdC9saWNlbnNlLnBocApVcmw6ICAgICAgICAgICAgaHR0cDovL3d3dy5pbWFnZW1hZ2ljay5vcmcvClNvdXJjZTA6ICAgICAgICBodHRwOi8vd3d3LmltYWdlbWFnaWNrLm9yZy9kb3dubG9hZC8le25hbWV9LyV7bmFtZX0tJXtWRVJTSU9OfS0le1BhdGNobGV2ZWx9LnRhci5iejIKCkJ1aWxkUm9vdDogICAgICAle190bXBwYXRofS8le25hbWV9LSV7dmVyc2lvbn0tJXtyZWxlYXNlfS1yb290LSUoJXtfX2lkX3V9IC1uKQpCdWlsZFJlcXVpcmVzOiAgYnppcDItZGV2ZWwsIGZyZWV0eXBlLWRldmVsLCBsaWJqcGVnLWRldmVsLCBsaWJwbmctZGV2ZWwKQnVpbGRSZXF1aXJlczogIGxpYnRpZmYtZGV2ZWwsIGdpZmxpYi1kZXZlbCwgemxpYi1kZXZlbCwgcGVybC1kZXZlbCA+PSA1LjguMQpCdWlsZFJlcXVpcmVzOiAgZ2hvc3RzY3JpcHQtZGV2ZWwsIGRqdnVsaWJyZS1kZXZlbApCdWlsZFJlcXVpcmVzOiAgbGlid21mLWRldmVsLCBqYXNwZXItZGV2ZWwsIGxpYnRvb2wtbHRkbC1kZXZlbApCdWlsZFJlcXVpcmVzOiAgbGliWDExLWRldmVsLCBsaWJYZXh0LWRldmVsLCBsaWJYdC1kZXZlbApCdWlsZFJlcXVpcmVzOiAgbGNtcy1kZXZlbCwgbGlieG1sMi1kZXZlbCwgbGlicnN2ZzItZGV2ZWwsIE9wZW5FWFItZGV2ZWwKCiVkZXNjcmlwdGlvbgpJbWFnZU1hZ2ljayBpcyBhIHNvZnR3YXJlIHN1aXRlIHRvIGNyZWF0ZSwgZWRpdCwgYW5kIGNvbXBvc2UgYml0bWFwIGltYWdlcy4gSXQKY2FuIHJlYWQsIGNvbnZlcnQgYW5kIHdyaXRlIGltYWdlcyBpbiBhIHZhcmlldHkgb2YgZm9ybWF0cyAoYWJvdXQgMTAwKQppbmNsdWRpbmcgRFBYLCBHSUYsIEpQRUcsIEpQRUctMjAwMCwgUERGLCBQaG90b0NELCBQTkcsIFBvc3RzY3JpcHQsIFNWRywKYW5kIFRJRkYuIFVzZSBJbWFnZU1hZ2ljayB0byB0cmFuc2xhdGUsIGZsaXAsIG1pcnJvciwgcm90YXRlLCBzY2FsZSwgc2hlYXIKYW5kIHRyYW5zZm9ybSBpbWFnZXMsIGFkanVzdCBpbWFnZSBjb2xvcnMsIGFwcGx5IHZhcmlvdXMgc3BlY2lhbCBlZmZlY3RzLApvciBkcmF3IHRleHQsIGxpbmVzLCBwb2x5Z29ucywgZWxsaXBzZXMgYW5kIELpemllciBjdXJ2ZXMuCgpUaGUgZnVuY3Rpb25hbGl0eSBvZiBJbWFnZU1hZ2ljayBpcyB0eXBpY2FsbHkgdXRpbGl6ZWQgZnJvbSB0aGUgY29tbWFuZCBsaW5lCm9yIHlvdSBjYW4gdXNlIHRoZSBmZWF0dXJlcyBmcm9tIHByb2dyYW1zIHdyaXR0ZW4gaW4geW91ciBmYXZvcml0ZSBwcm9ncmFtbWluZwpsYW5ndWFnZS4gQ2hvb3NlIGZyb20gdGhlc2UgaW50ZXJmYWNlczogRzJGIChBZGEpLCBNYWdpY2tDb3JlIChDKSwgTWFnaWNrV2FuZAooQyksIENoTWFnaWNrIChDaCksIE1hZ2ljaysrIChDKyspLCBKTWFnaWNrIChKYXZhKSwgTC1NYWdpY2sgKExpc3ApLCBuTWFnaWNrCihOZWtvL2hhWGUpLCBQYXNjYWxNYWdpY2sgKFBhc2NhbCksIFBlcmxNYWdpY2sgKFBlcmwpLCBNYWdpY2tXYW5kIGZvciBQSFAKKFBIUCksIFB5dGhvbk1hZ2ljayAoUHl0aG9uKSwgUk1hZ2ljayAoUnVieSksIG9yIFRjbE1hZ2ljayAoVGNsL1RLKS4gV2l0aCBhCmxhbmd1YWdlIGludGVyZmFjZSwgdXNlIEltYWdlTWFnaWNrIHRvIG1vZGlmeSBvciBjcmVhdGUgaW1hZ2VzIGF1dG9tYWdpY2FsbHkKYW5kIGR5bmFtaWNhbGx5LgoKSW1hZ2VNYWdpY2sgaXMgZnJlZSBzb2Z0d2FyZSBkZWxpdmVyZWQgYXMgYSByZWFkeS10by1ydW4gYmluYXJ5IGRpc3RyaWJ1dGlvbgpvciBhcyBzb3VyY2UgY29kZSB0aGF0IHlvdSBtYXkgZnJlZWx5IHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSBpbgpib3RoIG9wZW4gYW5kIHByb3ByaWV0YXJ5IGFwcGxpY2F0aW9ucy4gSXQgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgYW4gQXBhY2hlCjIuMC1zdHlsZSBsaWNlbnNlLCBhcHByb3ZlZCBieSB0aGUgT1NJLgoKVGhlIEltYWdlTWFnaWNrIGRldmVsb3BtZW50IHByb2Nlc3MgZW5zdXJlcyBhIHN0YWJsZSBBUEkgYW5kIEFCSS4gQmVmb3JlCmVhY2ggSW1hZ2VNYWdpY2sgcmVsZWFzZSwgd2UgcGVyZm9ybSBhIGNvbXByZWhlbnNpdmUgc2VjdXJpdHkgYXNzZXNzbWVudCB0aGF0CmluY2x1ZGVzIG1lbW9yeSBhbmQgdGhyZWFkIGVycm9yIGRldGVjdGlvbiB0byBoZWxwIHByZXZlbnQgZXhwbG9pdHMuSW1hZ2VNYWdpY2sKaXMgZnJlZSBzb2Z0d2FyZSBkZWxpdmVyZWQgYXMgYSByZWFkeS10by1ydW4gYmluYXJ5IGRpc3RyaWJ1dGlvbiBvciBhcyBzb3VyY2UKY29kZSB0aGF0IHlvdSBtYXkgZnJlZWx5IHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSBpbiBib3RoIG9wZW4gYW5kCnByb3ByaWV0YXJ5IGFwcGxpY2F0aW9ucy4gSXQgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgYW4gQXBhY2hlIDIuMC1zdHlsZSBsaWNlbnNlLAphcHByb3ZlZCBieSB0aGUgT1NJLgoKCiVwYWNrYWdlIGRldmVsClN1bW1hcnk6IExpYnJhcnkgbGlua3MgYW5kIGhlYWRlciBmaWxlcyBmb3IgSW1hZ2VNYWdpY2sgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQKR3JvdXA6IERldmVsb3BtZW50L0xpYnJhcmllcwpSZXF1aXJlczogJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQpSZXF1aXJlczogbGliWDExLWRldmVsLCBsaWJYZXh0LWRldmVsLCBsaWJYdC1kZXZlbApSZXF1aXJlczogZ2hvc3RzY3JpcHQtZGV2ZWwKUmVxdWlyZXM6IGJ6aXAyLWRldmVsClJlcXVpcmVzOiBmcmVldHlwZS1kZXZlbApSZXF1aXJlczogbGlidGlmZi1kZXZlbApSZXF1aXJlczogbGlianBlZy1kZXZlbApSZXF1aXJlczogbGNtcy1kZXZlbApSZXF1aXJlczogamFzcGVyLWRldmVsClJlcXVpcmVzOiBwa2djb25maWcKUmVxdWlyZXM6ICV7bmFtZX0tbGlicyA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQoKJWRlc2NyaXB0aW9uIGRldmVsCkltYWdlTWFnaWNrLWRldmVsIGNvbnRhaW5zIHRoZSBsaWJyYXJ5IGxpbmtzIGFuZCBoZWFkZXIgZmlsZXMgeW91J2xsCm5lZWQgdG8gZGV2ZWxvcCBJbWFnZU1hZ2ljayBhcHBsaWNhdGlvbnMuIEltYWdlTWFnaWNrIGlzIGFuIGltYWdlCm1hbmlwdWxhdGlvbiBwcm9ncmFtLgoKSWYgeW91IHdhbnQgdG8gY3JlYXRlIGFwcGxpY2F0aW9ucyB0aGF0IHdpbGwgdXNlIEltYWdlTWFnaWNrIGNvZGUgb3IKQVBJcywgeW91IG5lZWQgdG8gaW5zdGFsbCBJbWFnZU1hZ2ljay1kZXZlbCBhcyB3ZWxsIGFzIEltYWdlTWFnaWNrLgpZb3UgZG8gbm90IG5lZWQgdG8gaW5zdGFsbCBpdCBpZiB5b3UganVzdCB3YW50IHRvIHVzZSBJbWFnZU1hZ2ljaywKaG93ZXZlci4KCiVwYWNrYWdlIGxpYnMKU3VtbWFyeTogSW1hZ2VNYWdpY2sgbGlicmFyaWVzIHRvIGxpbmsgd2l0aApHcm91cDogQXBwbGljYXRpb25zL011bHRpbWVkaWEKCiVkZXNjcmlwdGlvbiBsaWJzClRoaXMgcGFja2FnZXMgY29udGFpbnMgYSBzaGFyZWQgbGlicmFyaWVzIHRvIHVzZSB3aXRoaW4gb3RoZXIgYXBwbGljYXRpb25zLgoKJXBhY2thZ2UgZGp2dQpTdW1tYXJ5OiBEalZ1IHBsdWdpbiBmb3IgSW1hZ2VNYWdpY2sKR3JvdXA6IEFwcGxpY2F0aW9ucy9NdWx0aW1lZGlhClJlcXVpcmVzOiAle25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CgolZGVzY3JpcHRpb24gZGp2dQpUaGlzIHBhY2thZ2VzIGNvbnRhaW5zIGEgcGx1Z2luIGZvciBJbWFnZU1hZ2ljayB3aGljaCBtYWtlcyBpdCBwb3NzaWJsZSB0bwpzYXZlIGFuZCBsb2FkIERqdlUgZmlsZXMgZnJvbSBJbWFnZU1hZ2ljayBhbmQgbGliTWFnaWNrQ29yZSB1c2luZyBhcHBsaWNhdGlvbnMuCgoKJXBhY2thZ2UgZG9jClN1bW1hcnk6IEltYWdlTWFnaWNrIEhUTUwgZG9jdW1lbnRhdGlvbgpHcm91cDogRG9jdW1lbnRhdGlvbgoKJWRlc2NyaXB0aW9uIGRvYwpJbWFnZU1hZ2ljayBkb2N1bWVudGF0aW9uLCB0aGlzIHBhY2thZ2UgY29udGFpbnMgdXNhZ2UgKGZvciB0aGUKY29tbWFuZGxpbmUgdG9vbHMpIGFuZCBBUEkgKGZvciB0aGUgbGlicmFyaWVzKSBkb2N1bWVudGF0aW9uIGluIEhUTUwgZm9ybWF0LgpOb3RlIHRoaXMgZG9jdW1lbnRhdGlvbiBjYW4gYWxzbyBiZSBmb3VuZCBvbiB0aGUgSW1hZ2VNYWdpY2sgd2Vic2l0ZToKaHR0cDovL3d3dy5pbWFnZW1hZ2ljay5vcmcvLgoKCiVwYWNrYWdlIHBlcmwKU3VtbWFyeTogSW1hZ2VNYWdpY2sgcGVybCBiaW5kaW5ncwpHcm91cDogU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcwpSZXF1aXJlczogJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQpSZXF1aXJlczogcGVybCg6TU9EVUxFX0NPTVBBVF8lKGV2YWwgImAle19fcGVybH0gLVY6dmVyc2lvbmAiOyBlY2hvICR2ZXJzaW9uKSkKCgolZGVzY3JpcHRpb24gcGVybApQZXJsIGJpbmRpbmdzIHRvIEltYWdlTWFnaWNrLgoKSW5zdGFsbCBJbWFnZU1hZ2ljay1wZXJsIGlmIHlvdSB3YW50IHRvIHVzZSBhbnkgcGVybCBzY3JpcHRzIHRoYXQgdXNlCkltYWdlTWFnaWNrLgoKCiVwYWNrYWdlIGMrKwpTdW1tYXJ5OiBJbWFnZU1hZ2ljayBNYWdpY2srKyBsaWJyYXJ5IChDKysgYmluZGluZ3MpCkdyb3VwOiBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzClJlcXVpcmVzOiAle25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CgolZGVzY3JpcHRpb24gYysrClRoaXMgcGFja2FnZSBjb250YWlucyB0aGUgTWFnaWNrKysgbGlicmFyeSwgYSBDKysgYmluZGluZyB0byB0aGUgSW1hZ2VNYWdpY2sKZ3JhcGhpY3MgbWFuaXB1bGF0aW9uIGxpYnJhcnkuCgpJbnN0YWxsIEltYWdlTWFnaWNrLWMrKyBpZiB5b3Ugd2FudCB0byB1c2UgYW55IGFwcGxpY2F0aW9ucyB0aGF0IHVzZSBNYWdpY2srKy4KCgolcGFja2FnZSBjKystZGV2ZWwKU3VtbWFyeTogQysrIGJpbmRpbmdzIGZvciB0aGUgSW1hZ2VNYWdpY2sgbGlicmFyeQpHcm91cDogRGV2ZWxvcG1lbnQvTGlicmFyaWVzClJlcXVpcmVzOiAle25hbWV9LWMrKyA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQpSZXF1aXJlczogJXtuYW1lfS1kZXZlbCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQoKJWRlc2NyaXB0aW9uIGMrKy1kZXZlbApJbWFnZU1hZ2ljay1kZXZlbCBjb250YWlucyB0aGUgc3RhdGljIGxpYnJhcmllcyBhbmQgaGVhZGVyIGZpbGVzIHlvdSdsbApuZWVkIHRvIGRldmVsb3AgSW1hZ2VNYWdpY2sgYXBwbGljYXRpb25zIHVzaW5nIHRoZSBNYWdpY2srKyBDKysgYmluZGluZ3MuCkltYWdlTWFnaWNrIGlzIGFuIGltYWdlIG1hbmlwdWxhdGlvbiBwcm9ncmFtLgoKSWYgeW91IHdhbnQgdG8gY3JlYXRlIGFwcGxpY2F0aW9ucyB0aGF0IHdpbGwgdXNlIE1hZ2ljaysrIGNvZGUKb3IgQVBJcywgeW91J2xsIG5lZWQgdG8gaW5zdGFsbCBJbWFnZU1hZ2ljay1jKystZGV2ZWwsIEltYWdlTWFnaWNrLWRldmVsIGFuZApJbWFnZU1hZ2ljay4KCllvdSBkb24ndCBuZWVkIHRvIGluc3RhbGwgaXQgaWYgeW91IGp1c3Qgd2FudCB0byB1c2UgSW1hZ2VNYWdpY2ssIG9yIGlmIHlvdQp3YW50IHRvIGRldmVsb3AvY29tcGlsZSBhcHBsaWNhdGlvbnMgdXNpbmcgdGhlIEltYWdlTWFnaWNrIEMgaW50ZXJmYWNlLApob3dldmVyLgoKCiVwcmVwCiVzZXR1cCAtcSAtbiAle25hbWV9LSV7VkVSU0lPTn0tJXtQYXRjaGxldmVsfQpzZWQgLWkgJ3MvbGlibHRkbC5sYS9saWJsdGRsLnNvL2cnIGNvbmZpZ3VyZQppY29udiAtZiBJU08tODg1OS0xIC10IFVURi04IFJFQURNRS50eHQgPiBSRUFETUUudHh0LnRtcAp0b3VjaCAtciBSRUFETUUudHh0IFJFQURNRS50eHQudG1wCm12IFJFQURNRS50eHQudG1wIFJFQURNRS50eHQKIyBmb3IgJSVkb2MKbWtkaXIgTWFnaWNrKysvZXhhbXBsZXMKY3AgLXAgTWFnaWNrKysvZGVtby8qLmNwcCBNYWdpY2srKy9kZW1vLyoubWlmZiBNYWdpY2srKy9leGFtcGxlcwoKJWJ1aWxkCiVjb25maWd1cmUgLS1lbmFibGUtc2hhcmVkIFwKICAgICAgICAgICAtLWRpc2FibGUtc3RhdGljIFwKICAgICAgICAgICAtLXdpdGgtbW9kdWxlcyBcCiAgICAgICAgICAgLS13aXRoLXBlcmwgXAogICAgICAgICAgIC0td2l0aC14IFwKICAgICAgICAgICAtLXdpdGgtdGhyZWFkcyBcCiAgICAgICAgICAgLS13aXRoLW1hZ2lja19wbHVzX3BsdXMgXAogICAgICAgICAgIC0td2l0aC1nc2xpYiBcCiAgICAgICAgICAgLS13aXRoLXdtZiBcCiAgICAgICAgICAgLS13aXRoLWxjbXMgXAogICAgICAgICAgIC0td2l0aC1yc3ZnIFwKICAgICAgICAgICAtLXdpdGgteG1sIFwKICAgICAgICAgICAtLXdpdGgtcGVybC1vcHRpb25zPSJJTlNUQUxMRElSUz12ZW5kb3IgJXs/cGVybF9wcmVmaXh9IENDPSclX19jYyAtTCRQV0QvbWFnaWNrLy5saWJzJyBMRERMRkxBR1M9Jy1zaGFyZWQgLUwkUFdEL21hZ2ljay8ubGlicyciIFwKICAgICAgICAgICAtLXdpdGhvdXQtZHBzIAojIERpc2FibGUgcnBhdGgKc2VkIC1pICdzfF5oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPS4qfGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9IiJ8ZycgbGlidG9vbApzZWQgLWkgJ3N8XnJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRIfHJ1bnBhdGhfdmFyPURJRV9SUEFUSF9ESUV8ZycgbGlidG9vbAojIERvICpOT1QqIHVzZSAlJXs/X3NtcF9tZmxhZ3N9LCB0aGlzIGNhdXNlcyBQZXJsTWFnaWNrIHRvIGJlIHNpbGVudGx5IG1pc2J1aWxkCm1ha2UKCgolaW5zdGFsbApybSAtcmYgJXtidWlsZHJvb3R9CgptYWtlIGluc3RhbGwgREVTVERJUj0le2J1aWxkcm9vdH0gSU5TVEFMTD0iaW5zdGFsbCAtcCIKY3AgLWEgd3d3L3NvdXJjZSAle2J1aWxkcm9vdH0le19kYXRhZGlyfS9kb2MvJXtuYW1lfS0le01BSk9SX1ZFUlNJT059CnJtICV7YnVpbGRyb290fSV7X2xpYmRpcn0vKi5sYQoKIyBmaXggd2VpcmQgcGVybCBNYWdpY2suc28gcGVybWlzc2lvbnMKY2htb2QgNzU1ICV7YnVpbGRyb290fSV7cGVybF92ZW5kb3JhcmNofS9hdXRvL0ltYWdlL01hZ2ljay8qLyouc28KCiMgcGVybG1hZ2ljazogZml4IHBlcmwgcGF0aCBvZiBkZW1vIGZpbGVzCiV7X19wZXJsfSAtTUV4dFV0aWxzOjpNYWtlTWFrZXIgLWUgJ01ZLT5maXhpbihAQVJHViknIFBlcmxNYWdpY2svZGVtby8qLnBsCgojIHBlcmxtYWdpY2s6IGNsZWFudXAgdmFyaW91cyBwZXJsIHRlbXBmaWxlcyBmcm9tIHRoZSBidWlsZCB3aGljaCBnZXQgaW5zdGFsbGVkCmZpbmQgJXtidWlsZHJvb3R9IC1uYW1lICIqLmJzIiB8eGFyZ3Mgcm0gLWYKZmluZCAle2J1aWxkcm9vdH0gLW5hbWUgIi5wYWNrbGlzdCIgfHhhcmdzIHJtIC1mCmZpbmQgJXtidWlsZHJvb3R9IC1uYW1lICJwZXJsbG9jYWwucG9kIiB8eGFyZ3Mgcm0gLWYKCiMgcGVybG1hZ2ljazogYnVpbGQgZmlsZXMgbGlzdAplY2hvICIlZGVmYXR0cigtLHJvb3Qscm9vdCwtKSIgPiBwZXJsLXBrZy1maWxlcwpmaW5kICV7YnVpbGRyb290fS8le19saWJkaXJ9L3BlcmwqIC10eXBlIGYgLXByaW50IFwKICAgICAgICB8IHNlZCAic0BeJXtidWlsZHJvb3R9QEBnIiA+IHBlcmwtcGtnLWZpbGVzIApmaW5kICV7YnVpbGRyb290fSV7cGVybF92ZW5kb3JhcmNofSAtdHlwZSBkIC1wcmludCBcCiAgICAgICAgfCBzZWQgInNAXiV7YnVpbGRyb290fUAlZGlyIEBnIiBcCiAgICAgICAgfCBncmVwIC12ICdeJWRpciAle3BlcmxfdmVuZG9yYXJjaH0kJyBcCiAgICAgICAgfCBncmVwIC12ICcvYXV0byQnID4+IHBlcmwtcGtnLWZpbGVzIAppZiBbIC16IHBlcmwtcGtnLWZpbGVzIF0gOyB0aGVuCiAgICBlY2hvICJFUlJPUjogRU1QVFkgRklMRSBMSVNUIgogICAgZXhpdCAtMQpmaQoKJWNsZWFuCnJtIC1yZiAle2J1aWxkcm9vdH0KCiVwb3N0IGxpYnMgLXAgL3NiaW4vbGRjb25maWcKCiVwb3N0IGMrKyAtcCAvc2Jpbi9sZGNvbmZpZwoKJXBvc3R1biBsaWJzIC1wIC9zYmluL2xkY29uZmlnCgolcG9zdHVuIGMrKyAtcCAvc2Jpbi9sZGNvbmZpZwoKJWZpbGVzCiVkZWZhdHRyKC0scm9vdCxyb290LC0pCiVkb2MgUXVpY2tTdGFydC50eHQgQ2hhbmdlTG9nIFBsYXRmb3Jtcy50eHQKJWRvYyBSRUFETUUudHh0IExJQ0VOU0UgTk9USUNFIEFVVEhPUlMudHh0IE5FV1MudHh0CiV7X2xpYmRpcn0vbGliTWFnaWNrQ29yZSpzbyoKJXtfbGliZGlyfS9saWJNYWdpY2tXYW5kKnNvKgole19iaW5kaXJ9L1thLXpdKgole19saWJkaXJ9LyV7bmFtZX0tJXtWRVJTSU9OfQole19kYXRhZGlyfS8le25hbWV9LSV7TUFKT1JfVkVSU0lPTn0KJXtfbWFuZGlyfS9tYW5bMTQ1XS9bYS16XSoKJXtfbWFuZGlyfS9tYW4xLyV7bmFtZX0uKgolZXhjbHVkZSAle19saWJkaXJ9LyV7bmFtZX0tJXtWRVJTSU9OfS9tb2R1bGVzLSovY29kZXJzL2RqdnUuKgole19zeXNjb25mZGlyfS8le25hbWV9LSV7TUFKT1JfVkVSU0lPTn0KCgolZmlsZXMgZGV2ZWwKJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKJXtfYmluZGlyfS9NYWdpY2tDb3JlLWNvbmZpZwole19iaW5kaXJ9L01hZ2lja1dhbmQtY29uZmlnCiV7X2xpYmRpcn0vbGliTWFnaWNrQ29yZSpzbyoKJXtfbGliZGlyfS9saWJNYWdpY2tXYW5kKnNvKgole19saWJkaXJ9L3BrZ2NvbmZpZy9NYWdpY2tDb3JlKi5wYwole19saWJkaXJ9L3BrZ2NvbmZpZy9JbWFnZU1hZ2ljayoucGMKJXtfbGliZGlyfS9wa2djb25maWcvTWFnaWNrV2FuZCoucGMKJWRpciAle19pbmNsdWRlZGlyfS8le25hbWV9LSV7TUFKT1JfVkVSU0lPTn0KJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS0le01BSk9SX1ZFUlNJT059L01hZ2lja0NvcmUKJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS0le01BSk9SX1ZFUlNJT059L01hZ2lja1dhbmQKJXtfbWFuZGlyfS9tYW4xL01hZ2lja0NvcmUtY29uZmlnLioKJXtfbWFuZGlyfS9tYW4xL01hZ2lja1dhbmQtY29uZmlnLioKCiVmaWxlcyBkanZ1CiVkZWZhdHRyKC0scm9vdCxyb290LC0pCiV7X2xpYmRpcn0vJXtuYW1lfS0le3ZlcnNpb259L21vZHVsZXMtUSovY29kZXJzL2RqdnUuKgoKJWZpbGVzIGRvYwolZGVmYXR0cigtLHJvb3Qscm9vdCwtKQolZG9jICV7X2RhdGFkaXJ9L2RvYy8le25hbWV9LSV7TUFKT1JfVkVSU0lPTn0KJWRvYyBMSUNFTlNFCgolZmlsZXMgYysrCiVkZWZhdHRyKC0scm9vdCxyb290LC0pCiVkb2MgTWFnaWNrKysvQVVUSE9SUyBNYWdpY2srKy9DaGFuZ2VMb2cgTWFnaWNrKysvTkVXUyBNYWdpY2srKy9SRUFETUUKJWRvYyB3d3cvTWFnaWNrKysvQ09QWUlORwole19saWJkaXJ9L2xpYk1hZ2ljaysrKnNvKgoKJWZpbGVzIGMrKy1kZXZlbAolZGVmYXR0cigtLHJvb3Qscm9vdCwtKQolZG9jIE1hZ2ljaysrL2V4YW1wbGVzCiV7X2JpbmRpcn0vTWFnaWNrKystY29uZmlnCiV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0tJXtNQUpPUl9WRVJTSU9OfS9NYWdpY2srKwole19pbmNsdWRlZGlyfS8le25hbWV9LSV7TUFKT1JfVkVSU0lPTn0vTWFnaWNrKysuaAole19saWJkaXJ9L2xpYk1hZ2ljaysrKnNvKgole19saWJkaXJ9L3BrZ2NvbmZpZy9NYWdpY2srKyoucGMKJXtfbGliZGlyfS9wa2djb25maWcvSW1hZ2VNYWdpY2srKyoucGMKJXtfbWFuZGlyfS9tYW4xL01hZ2ljaysrLWNvbmZpZy4qCgolZmlsZXMgcGVybCAtZiBwZXJsLXBrZy1maWxlcwolZGVmYXR0cigtLHJvb3Qscm9vdCwtKQole19tYW5kaXJ9L21hbjMvKgolZG9jIFBlcmxNYWdpY2svZGVtby8gUGVybE1hZ2ljay9DaGFuZ2Vsb2cgUGVybE1hZ2ljay9SRUFETUUudHh0CgoKJWNoYW5nZWxvZwoqIFN1biBNYXkgMDEgMjAwNSBDcmlzdHkgPGNyaXN0eUBteXN0aWMuZXMuZHVwb250LmNvbT4gMS4wLTAKLSAgUG9ydCBvZiBSZWRoYXQncyBSUE0gc2NyaXB0IHRvIHN1cHBvcnQgSW1hZ2VNYWdpY2suCg==