VGVzdHMgZm9yIHNwZWxsIGNoZWNraW5nIHdpdGggJ2VuY29kaW5nJyBzZXQgdG8gInV0Zi04Ii4gIHZpbTogc2V0IGZ0PXZpbSA6CgpTVEFSVFRFU1QKOnNvIHNtYWxsLnZpbQo6c28gbWJ5dGUudmltCjoiCjoiIERvbid0IHdhbnQgdG8gZGVwZW5kIG9uIHRoZSBsb2NhbGUgZnJvbSB0aGUgZW52aXJvbm1lbnQuICBUaGUgLmFmZiBhbmQgLmRpYwo6IiB0ZXh0IGlzIGluIGxhdGluMSwgdGhlIHRlc3QgdGV4dCBpcyB1dGYtOC4KOnNldCBlbmM9bGF0aW4xCjplIQo6c2V0IGVuYz11dGYtOAo6c2V0IGZlbmM9CjoiCjoiIEZ1bmN0aW9uIHRvIHRlc3QgLmFmZi8uZGljIHdpdGggbGlzdCBvZiBnb29kIGFuZCBiYWQgd29yZHMuCjpmdW5jIFRlc3RPbmUoYWZmLCBkaWMpCiAgc2V0IHNwZWxsZmlsZT0KICAkcHV0ID0nJwogICRwdXQgPSd0ZXN0ICcuIGE6YWZmIC4gJy0nIC4gYTpkaWMKICAiIEdlbmVyYXRlIGEgLnNwbCBmaWxlIGZyb20gYSAuZGljIGFuZCAuYWZmIGZpbGUuCiAgZXhlICcxOy9eJyAuIGE6YWZmIC4gJ2FmZnN0YXJ0LysxLC9eJyAuIGE6YWZmIC4gJ2FmZmVuZC8tMXchIFh0ZXN0LmFmZicKICBleGUgJzE7L14nIC4gYTpkaWMgLiAnZGljc3RhcnQvKzEsL14nIC4gYTpkaWMgLiAnZGljZW5kLy0xdyEgWHRlc3QuZGljJwogIG1rc3BlbGwhIFh0ZXN0IFh0ZXN0CiAgIiB1c2UgdGhhdCBzcGVsbCBmaWxlCiAgc2V0IHNwbD1YdGVzdC51dGYtOC5zcGwgc3BlbGwKICAiIGxpc3QgYWxsIHZhbGlkIHdvcmRzCiAgc3BlbGxkdW1wCiAgJXlhbmsKICBxdWl0CiAgJHB1dAogICRwdXQgPSctLS0tLS0tJwogICIgZmluZCBhbGwgYmFkIHdvcmRzIGFuZCBzdWdnZXN0aW9ucyBmb3IgdGhlbQogIGV4ZSAnMTsvXicgLiBhOmFmZiAuICdnb29kOicKICBub3JtYWwgMGY6XXMKICBsZXQgcHJldmJhZCA9ICcnCiAgd2hpbGUgMQogICAgbGV0IFtiYWQsIGFdID0gc3BlbGxiYWR3b3JkKCkKICAgIGlmIGJhZCA9PSAnJyB8fCBiYWQgPT0gcHJldmJhZCB8fCBiYWQgPT0gJ2JhZGVuZCcKICAgICAgYnJlYWsKICAgIGVuZGlmCiAgICBsZXQgcHJldmJhZCA9IGJhZAogICAgbGV0IGxzdCA9IHNwZWxsc3VnZ2VzdChiYWQsIDMpCiAgICBub3JtYWwgbW0KICAgICRwdXQgPWJhZAogICAgJHB1dCA9c3RyaW5nKGxzdCkKICAgIG5vcm1hbCBgbV1zCiAgZW5kd2hpbGUKZW5kZnVuYwo6Igo6Y2FsbCBUZXN0T25lKCcxJywgJzEnKQo6JHB1dCA9c291bmRmb2xkKCdnb29ibGVkeWdvb29rJykKOiRwdXQgPXNvdW5kZm9sZCgna8Ozb3DDq3LDv27DtHZlbicpCjokcHV0ID1zb3VuZGZvbGQoJ29ldmVybG9vcyBnZXp3ZXRzIGVkYWxlJykKOiIKOiIKOiIgYW5kIG5vdyB3aXRoIFNBTCBpbnN0ZWFkIG9mIFNPRk8gaXRlbXM7IHRlc3QgYXV0b21hdGljIHJlbG9hZGluZwpnZzovXmFmZnN0YXJ0X3NhbC8rMSwvXmFmZmVuZF9zYWwvLTF3ISBYdGVzdC5hZmYKOm1rc3BlbGwhIFh0ZXN0IFh0ZXN0CjokcHV0ID1zb3VuZGZvbGQoJ2dvb2JsZWR5Z29vb2snKQo6JHB1dCA9c291bmRmb2xkKCdrw7NvcMOrcsO/bsO0dmVuJykKOiRwdXQgPXNvdW5kZm9sZCgnb2V2ZXJsb29zIGdlendldHMgZWRhbGUnKQo6Igo6IiBhbHNvIHVzZSBhbiBhZGRpdGlvbiBmaWxlCmdnOi9eYWRkc3RhcnQvKzEsL15hZGRlbmQvLTF3ISBYdGVzdC51dGYtOC5hZGQKOm1rc3BlbGwhIFh0ZXN0LnV0Zi04LmFkZC5zcGwgWHRlc3QudXRmLTguYWRkCjpzZXQgc3BlbGxmaWxlPVh0ZXN0LnV0Zi04LmFkZAovXnRlc3QyOgpdczpsZXQgW3N0ciwgYV0gPSBzcGVsbGJhZHdvcmQoKQo6JHB1dCA9c3RyCjpzZXQgc3BsPVh0ZXN0X3VzLnV0Zi04LnNwbAovXnRlc3QyOgpdc21tOmxldCBbc3RyLCBhXSA9IHNwZWxsYmFkd29yZCgpCjokcHV0ID1zdHIKYG1dczpsZXQgW3N0ciwgYV0gPSBzcGVsbGJhZHdvcmQoKQo6JHB1dCA9c3RyCjpzZXQgc3BsPVh0ZXN0X2diLnV0Zi04LnNwbAovXnRlc3QyOgpdc21tOmxldCBbc3RyLCBhXSA9IHNwZWxsYmFkd29yZCgpCjokcHV0ID1zdHIKYG1dczpsZXQgW3N0ciwgYV0gPSBzcGVsbGJhZHdvcmQoKQo6JHB1dCA9c3RyCjpzZXQgc3BsPVh0ZXN0X256LnV0Zi04LnNwbAovXnRlc3QyOgpdc21tOmxldCBbc3RyLCBhXSA9IHNwZWxsYmFkd29yZCgpCjokcHV0ID1zdHIKYG1dczpsZXQgW3N0ciwgYV0gPSBzcGVsbGJhZHdvcmQoKQo6JHB1dCA9c3RyCjpzZXQgc3BsPVh0ZXN0X2NhLnV0Zi04LnNwbAovXnRlc3QyOgpdc21tOmxldCBbc3RyLCBhXSA9IHNwZWxsYmFkd29yZCgpCjokcHV0ID1zdHIKYG1dczpsZXQgW3N0ciwgYV0gPSBzcGVsbGJhZHdvcmQoKQo6JHB1dCA9c3RyCjoiCjoiIFBvc3Rwb25lZCBwcmVmaXhlcwo6Y2FsbCBUZXN0T25lKCcyJywgJzEnKQo6Igo6IiBDb21wb3VuZCB3b3Jkcwo6Y2FsbCBUZXN0T25lKCczJywgJzMnKQo6Y2FsbCBUZXN0T25lKCc0JywgJzQnKQo6Y2FsbCBUZXN0T25lKCc1JywgJzUnKQo6Y2FsbCBUZXN0T25lKCc2JywgJzYnKQo6Y2FsbCBUZXN0T25lKCc3JywgJzcnKQo6IgpnZzovXnRlc3Qgb3V0cHV0Oi8sJHdxISB0ZXN0Lm91dApFTkRURVNUCgoxYWZmc3RhcnQKU0VUIElTTzg4NTktMQpUUlkgZXNpYW5ydG9sY2R1Z21waGJ5ZnZrd2prcXh6Levp6Orv7uTg4vb8+ydFU0lBTlJUT0xDRFVHTVBIQllGVktXSktRWFoKCkZPTCAg4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KTE9XICDg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/wpVUFAgIMDBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3t//CgpTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/ClNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KCk1JRFdPUkQJJy0KCktFUCA9ClJBUiA/CkJBRCAhCgojTk9TUExJVFNVR1MKClBGWCBJIE4gMQpQRlggSSAwIGluIC4KClBGWCBPIFkgMQpQRlggTyAwIG91dCAuCgpTRlggUyBZIDIKU0ZYIFMgMCBzIFtec10KU0ZYIFMgMCBlcyBzCgpTRlggTiBOIDMKU0ZYIE4gMCBlbiBbXm5dClNGWCBOIDAgbmVuIG4KU0ZYIE4gMCBuIC4KClJFUCAzClJFUCBnIGNoClJFUCBjaCBnClJFUCBzdnAgcy52LnAuCgpNQVAgOQpNQVAgYeDh4uPk5QpNQVAgZejp6usKTUFQIGns7e7vCk1BUCBv8vP09fYKTUFQIHX5+vv8Ck1BUCBu8QpNQVAgY+cKTUFQIHn//QpNQVAgc98KMWFmZmVuZAoKYWZmc3RhcnRfc2FsClNFVCBJU084ODU5LTEKVFJZIGVzaWFucnRvbGNkdWdtcGhieWZ2a3dqa3F4ei3r6ejq7+7k4OL2/PsnRVNJQU5SVE9MQ0RVR01QSEJZRlZLV0pLUVhaCgpGT0wgIODh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CkxPVyAg4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KVVBQICDAwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7f/woKTUlEV09SRAknLQoKS0VQID0KUkFSID8KQkFEICEKCiNOT1NQTElUU1VHUwoKUEZYIEkgTiAxClBGWCBJIDAgaW4gLgoKUEZYIE8gWSAxClBGWCBPIDAgb3V0IC4KClNGWCBTIFkgMgpTRlggUyAwIHMgW15zXQpTRlggUyAwIGVzIHMKClNGWCBOIE4gMwpTRlggTiAwIGVuIFtebl0KU0ZYIE4gMCBuZW4gbgpTRlggTiAwIG4gLgoKUkVQIDMKUkVQIGcgY2gKUkVQIGNoIGcKUkVQIHN2cCBzLnYucC4KCk1BUCA5Ck1BUCBh4OHi4+TlCk1BUCBl6Onq6wpNQVAgaezt7u8KTUFQIG/y8/T19gpNQVAgdfn6+/wKTUFQIG7xCk1BUCBj5wpNQVAgef/9Ck1BUCBz3woKU0FMIEFIKEFFSU9VWSktXiAgICAgICAgICpIClNBTCBBUihBRUlPVVkpLV4gICAgICAgICAqUgpTQUwgQShIUileICAgICAgICAgICAgICAgKgpTQUwgQV4gICAgICAgICAgICAgICAgICAgKgpTQUwgQUgoQUVJT1VZKS0gICAgICAgICAgSApTQUwgQVIoQUVJT1VZKS0gICAgICAgICAgUgpTQUwgQShIUikgICAgICAgICAgICAgICAgXwpTQUwgwF4gICAgICAgICAgICAgICAgICAgKgpTQUwgxV4gICAgICAgICAgICAgICAgICAgKgpTQUwgQkItICAgICAgICAgICAgICAgICAgXwpTQUwgQiAgICAgICAgICAgICAgICAgICAgQgpTQUwgQ1EtICAgICAgICAgICAgICAgICAgXwpTQUwgQ0lBICAgICAgICAgICAgICAgICAgWApTQUwgQ0ggICAgICAgICAgICAgICAgICAgWApTQUwgQyhFSVkpLSAgICAgICAgICAgICAgUwpTQUwgQ0sgICAgICAgICAgICAgICAgICAgSwpTQUwgQ09VR0heICAgICAgICAgICAgICAgS0YKU0FMIENDPCAgICAgICAgICAgICAgICAgIEMKU0FMIEMgICAgICAgICAgICAgICAgICAgIEsKU0FMIERHKEVJWSkgICAgICAgICAgICAgIEsKU0FMIERELSAgICAgICAgICAgICAgICAgIF8KU0FMIEQgICAgICAgICAgICAgICAgICAgIFQKU0FMIMk8ICAgICAgICAgICAgICAgICAgIEUKU0FMIEVIKEFFSU9VWSktXiAgICAgICAgICpIClNBTCBFUihBRUlPVVkpLV4gICAgICAgICAqUgpTQUwgRShIUileICAgICAgICAgICAgICAgKgpTQUwgRU5PVUdIXiQgICAgICAgICAgICAgKk5GClNBTCBFXiAgICAgICAgICAgICAgICAgICAqClNBTCBFSChBRUlPVVkpLSAgICAgICAgICBIClNBTCBFUihBRUlPVVkpLSAgICAgICAgICBSClNBTCBFKEhSKSAgICAgICAgICAgICAgICBfClNBTCBGRi0gICAgICAgICAgICAgICAgICBfClNBTCBGICAgICAgICAgICAgICAgICAgICBGClNBTCBHTl4gICAgICAgICAgICAgICAgICBOClNBTCBHTiQgICAgICAgICAgICAgICAgICBOClNBTCBHTlMkICAgICAgICAgICAgICAgICBOUwpTQUwgR05FRCQgICAgICAgICAgICAgICAgTgpTQUwgR0goQUVJT1VZKS0gICAgICAgICAgSwpTQUwgR0ggICAgICAgICAgICAgICAgICAgXwpTQUwgR0c5ICAgICAgICAgICAgICAgICAgSwpTQUwgRyAgICAgICAgICAgICAgICAgICAgSwpTQUwgSCAgICAgICAgICAgICAgICAgICAgSApTQUwgSUgoQUVJT1VZKS1eICAgICAgICAgKkgKU0FMIElSKEFFSU9VWSktXiAgICAgICAgICpSClNBTCBJKEhSKV4gICAgICAgICAgICAgICAqClNBTCBJXiAgICAgICAgICAgICAgICAgICAqClNBTCBJTkc2ICAgICAgICAgICAgICAgICBOClNBTCBJSChBRUlPVVkpLSAgICAgICAgICBIClNBTCBJUihBRUlPVVkpLSAgICAgICAgICBSClNBTCBJKEhSKSAgICAgICAgICAgICAgICBfClNBTCBKICAgICAgICAgICAgICAgICAgICBLClNBTCBLTl4gICAgICAgICAgICAgICAgICBOClNBTCBLSy0gICAgICAgICAgICAgICAgICBfClNBTCBLICAgICAgICAgICAgICAgICAgICBLClNBTCBMQVVHSF4gICAgICAgICAgICAgICBMRgpTQUwgTEwtICAgICAgICAgICAgICAgICAgXwpTQUwgTCAgICAgICAgICAgICAgICAgICAgTApTQUwgTUIkICAgICAgICAgICAgICAgICAgTQpTQUwgTU0gICAgICAgICAgICAgICAgICAgTQpTQUwgTSAgICAgICAgICAgICAgICAgICAgTQpTQUwgTk4tICAgICAgICAgICAgICAgICAgXwpTQUwgTiAgICAgICAgICAgICAgICAgICAgTgpTQUwgT0goQUVJT1VZKS1eICAgICAgICAgKkgKU0FMIE9SKEFFSU9VWSktXiAgICAgICAgICpSClNBTCBPKEhSKV4gICAgICAgICAgICAgICAqClNBTCBPXiAgICAgICAgICAgICAgICAgICAqClNBTCBPSChBRUlPVVkpLSAgICAgICAgICBIClNBTCBPUihBRUlPVVkpLSAgICAgICAgICBSClNBTCBPKEhSKSAgICAgICAgICAgICAgICBfClNBTCBQSCAgICAgICAgICAgICAgICAgICBGClNBTCBQTl4gICAgICAgICAgICAgICAgICBOClNBTCBQUC0gICAgICAgICAgICAgICAgICBfClNBTCBQICAgICAgICAgICAgICAgICAgICBQClNBTCBRICAgICAgICAgICAgICAgICAgICBLClNBTCBSSF4gICAgICAgICAgICAgICAgICBSClNBTCBST1VHSF4gICAgICAgICAgICAgICBSRgpTQUwgUlItICAgICAgICAgICAgICAgICAgXwpTQUwgUiAgICAgICAgICAgICAgICAgICAgUgpTQUwgU0NIKEVPVSktICAgICAgICAgICAgU0sKU0FMIFNDKElFWSktICAgICAgICAgICAgIFMKU0FMIFNIICAgICAgICAgICAgICAgICAgIFgKU0FMIFNJKEFPKS0gICAgICAgICAgICAgIFgKU0FMIFNTLSAgICAgICAgICAgICAgICAgIF8KU0FMIFMgICAgICAgICAgICAgICAgICAgIFMKU0FMIFRJKEFPKS0gICAgICAgICAgICAgIFgKU0FMIFRIICAgICAgICAgICAgICAgICAgIEAKU0FMIFRDSC0tICAgICAgICAgICAgICAgIF8KU0FMIFRPVUdIXiAgICAgICAgICAgICAgIFRGClNBTCBUVC0gICAgICAgICAgICAgICAgICBfClNBTCBUICAgICAgICAgICAgICAgICAgICBUClNBTCBVSChBRUlPVVkpLV4gICAgICAgICAqSApTQUwgVVIoQUVJT1VZKS1eICAgICAgICAgKlIKU0FMIFUoSFIpXiAgICAgICAgICAgICAgICoKU0FMIFVeICAgICAgICAgICAgICAgICAgICoKU0FMIFVIKEFFSU9VWSktICAgICAgICAgIEgKU0FMIFVSKEFFSU9VWSktICAgICAgICAgIFIKU0FMIFUoSFIpICAgICAgICAgICAgICAgIF8KU0FMIFZeICAgICAgICAgICAgICAgICAgIFcKU0FMIFYgICAgICAgICAgICAgICAgICAgIEYKU0FMIFdSXiAgICAgICAgICAgICAgICAgIFIKU0FMIFdIXiAgICAgICAgICAgICAgICAgIFcKU0FMIFcoQUVJT1UpLSAgICAgICAgICAgIFcKU0FMIFheICAgICAgICAgICAgICAgICAgIFMKU0FMIFggICAgICAgICAgICAgICAgICAgIEtTClNBTCBZKEFFSU9VKS0gICAgICAgICAgICBZClNBTCBaWi0gICAgICAgICAgICAgICAgICBfClNBTCBaICAgICAgICAgICAgICAgICAgICBTCmFmZmVuZF9zYWwKCjJhZmZzdGFydApTRVQgSVNPODg1OS0xCgpGT0wgIODh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CkxPVyAg4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KVVBQICDAwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7f/woKUEZYUE9TVFBPTkUKCk1JRFdPUkQJJy0KCktFUCA9ClJBUiA/CkJBRCAhCgojTk9TUExJVFNVR1MKClBGWCBJIE4gMQpQRlggSSAwIGluIC4KClBGWCBPIFkgMQpQRlggTyAwIG91dCBbYS16XQoKU0ZYIFMgWSAyClNGWCBTIDAgcyBbXnNdClNGWCBTIDAgZXMgcwoKU0ZYIE4gTiAzClNGWCBOIDAgZW4gW15uXQpTRlggTiAwIG5lbiBuClNGWCBOIDAgbiAuCgpSRVAgMwpSRVAgZyBjaApSRVAgY2ggZwpSRVAgc3ZwIHMudi5wLgoKTUFQIDkKTUFQIGHg4eLj5OUKTUFQIGXo6errCk1BUCBp7O3u7wpNQVAgb/Lz9PX2Ck1BUCB1+fr7/ApNQVAgbvEKTUFQIGPnCk1BUCB5//0KTUFQIHPfCjJhZmZlbmQKCjFkaWNzdGFydAoxMjM0NTYKdGVzdC9OTwojIGNvbW1lbnQKd3JvbmcKQ29tbWVudApPSwp1awpwdXQvSVNPCnRoZSBlbmQKZGVvbApk6fRyCjFkaWNlbmQKCmFkZHN0YXJ0Ci9yZWdpb25zPXVzZ2JuegplbGVxdWludC8yCmVsZWt3aW50LzMKYWRkZW5kCgoxZ29vZDogd3JvbmcgT0sgcHV0cy4gVGVzdCB0aGUgZW5kCmJhZDogIGlucHV0cyBjb21tZW50IG9rIE9rLiB0ZXN0IGTDqcO0bCBlbmQgdGhlCmJhZGVuZAoKMmdvb2Q6IHB1dHMKYmFkOiBpbnB1dHMgY29tbWVudCBvayBPayBlbmQgdGhlLiB0ZXN0IGTDqcO0bApiYWRlbmQKClRlc3QgcnVsZXMgZm9yIGNvbXBvdW5kaW5nLgoKM2FmZnN0YXJ0ClNFVCBJU084ODU5LTEKCkNPTVBPVU5ETUlOIDMKQ09NUE9VTkRSVUxFIG0qCk5FRURDT01QT1VORCB4CjNhZmZlbmQKCjNkaWNzdGFydAoxMjM0CmZvby9tCmJhci9teApt7y9tCmxhL214CjNkaWNlbmQKCjNnb29kOiBmb28gbcOvIGZvb2JhciBmb29mb29iYXIgYmFyZm9vIGJhcmJhcmZvbwpiYWQ6IGJhciBsYSBmb29tw68gYmFybcOvIG3Dr2ZvbyBtw69iYXIgbcOvbcOvIGxhbGEgbcOvbGEgbGFtw68gZm9vbGEgbGFiYXIKYmFkZW5kCgoKVGVzdHMgZm9yIGNvbXBvdW5kaW5nLgoKNGFmZnN0YXJ0ClNFVCBJU084ODU5LTEKCkZPTCAg4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KTE9XICDg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/wpVUFAgIMDBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3t//CgpDT01QT1VORFJVTEUgbSsKQ09NUE9VTkRSVUxFIHNtKmUKQ09NUE9VTkRSVUxFIHNtKwpDT01QT1VORE1JTiAzCkNPTVBPVU5EV09SRE1BWCAzCkNPTVBPVU5ERk9SQklERkxBRyB0CgpDT01QT1VORFNZTE1BWCA1ClNZTExBQkxFIGHhZelp7W/z9vV1+vz7eS9hYS9hdS9lYS9lZS9laS9pZS9vYS9vZS9vby9vdS91dS91aQoKTUFQIDkKTUFQIGHg4eLj5OUKTUFQIGXo6errCk1BUCBp7O3u7wpNQVAgb/Lz9PX2Ck1BUCB1+fr7/ApNQVAgbvEKTUFQIGPnCk1BUCB5//0KTUFQIHPfCgpORUVEQUZGSVggeAoKUEZYUE9TVFBPTkUKCk1JRFdPUkQgJy0KClNGWCBxIE4gMQpTRlggcSAgIDAgICAgLW9rIC4KClNGWCBhIFkgMgpTRlggYSAwIHMgLgpTRlggYSAwIGl6ZS90IC4KClBGWCBwIE4gMQpQRlggcCAwIHByZSAuCgpQRlggUCBOIDEKUEZYIFAgMCBub3UgLgo0YWZmZW5kCgo0ZGljc3RhcnQKMTIzNAp3b3JkL21QCnV0aWwvYW0KcHJvL3hxCnRvbWF0by9tCmJvcmsvbXAKc3RhcnQvcwplbmQvZQo0ZGljZW5kCgo0Z29vZDogd29yZCB1dGlsIGJvcmsgcHJlYm9yayBzdGFydCBlbmQgd29yZHV0aWwgd29yZHV0aWxzIHByby1vawoJYm9yayBib3JrYm9yayBib3JrYm9ya2JvcmsgYm9ya2Jvcmtib3JrYm9yayBib3JrYm9ya2Jvcmtib3JrYm9yawoJdG9tYXRvIHRvbWF0b3RvbWF0byBzdGFydGVuZCBzdGFydHdvcmQgc3RhcnR3b3Jkd29yZCBzdGFydHdvcmRlbmQKCXN0YXJ0d29yZHdvcmRlbmQgc3RhcnR3b3Jkd29yZHdvcmRlbmQgcHJlYm9yayBwcmVib3JrYm9yawoJcHJlYm9ya2Jvcmtib3JrCglub3V3b3JkCmJhZDogd29yZHV0aWxpemUgcHJvIGJvcmtib3JrYm9ya2Jvcmtib3JrYm9yayB0b21hdG90b21hdG90b21hdG8KCWVuZHN0YXJ0IGVuZGVuZCBzdGFydHN0YXJ0IHdvcmRlbmQgd29yZHN0YXJ0CglwcmVib3JrcHJlYm9yayAgcHJlYm9ya3ByZWJvcmtib3JrCiAJc3RhcnR3b3Jkd29yZHdvcmR3b3JkZW5kIGJvcmtwcmVib3JrcHJlYm9ya2JvcmsKCXV0aWxzYm9yayAgc3RhcnRub3V3b3JkCmJhZGVuZAoKdGVzdDI6CmVsZXF1aW50IHRlc3QgZWxla3dpbnQgdGVzdCBlbGVrd2VudCBhc2RmCgpUZXN0IGFmZml4IGZsYWdzIHdpdGggdHdvIGNoYXJhY3RlcnMKCjVhZmZzdGFydApTRVQgSVNPODg1OS0xCgpGTEFHIGxvbmcKCk5FRURBRkZJWCAhIQoKQ09NUE9VTkRSVUxFIHNzbW0qZWUKCk5FRURDT01QT1VORCB4eApDT01QT1VORFBFUk1JVEZMQUcgcHAKClNGWCAxMyBZIDEKU0ZYIDEzIDAgYm9yayAuCgpTRlggYTEgWSAxClNGWCBhMSAwIGExIC4KClNGWCBh6SBZIDEKU0ZYIGHpIDAgYekgLgoKUEZYIHp6IFkgMQpQRlggenogMCBwcmUvcHAgLgoKUEZYIHl5IFkgMQpQRlggeXkgMCBub3UgLgo1YWZmZW5kCgo1ZGljc3RhcnQKMTIzNApmb28vYTFh6SEhCmJhci96ejEzZWUKc3RhcnQvc3MKZW5kL2VleXkKbWlkZGxlL21teHgKNWRpY2VuZAoKNWdvb2Q6IGZvb2ExIGZvb2HDqSBiYXIgcHJlYmFyIGJhcmJvcmsgcHJlYmFyYm9yayAgc3RhcnRwcmViYXIKICAgICAgc3RhcnQgZW5kIHN0YXJ0ZW5kICBzdGFydG1pZGRsZWVuZCBub3VlbmQKYmFkOiBmb28gZm9vYTIgcHJhYmFyIHByb2JhcmJpcmsgbWlkZGxlIHN0YXJ0bWlkZGxlIG1pZGRsZWVuZCBlbmRzdGFydAoJc3RhcnRwcm9iYXIgc3RhcnRub3VlbmQKYmFkZW5kCgo2YWZmc3RhcnQKU0VUIElTTzg4NTktMQoKRkxBRyBjYXBsb25nCgpORUVEQUZGSVggQSEKCkNPTVBPVU5EUlVMRSBzTW0qRWUKCk5FRURDT01QT1VORCBYeAoKQ09NUE9VTkRQRVJNSVRGTEFHIHAKClNGWCBOMyBZIDEKU0ZYIE4zIDAgYm9yayAuCgpTRlggQTEgWSAxClNGWCBBMSAwIGExIC4KClNGWCBB6SBZIDEKU0ZYIEHpIDAgYekgLgoKUEZYIFp6IFkgMQpQRlggWnogMCBwcmUvcCAuCjZhZmZlbmQKCjZkaWNzdGFydAoxMjM0Cm1lZS9BMUHpQSEKYmFyL1p6TjNFZQpsZWFkL3MKZW5kL0VlCm1pZGRsZS9NbVh4CjZkaWNlbmQKCjZnb29kOiBtZWVhMSBtZWVhw6kgYmFyIHByZWJhciBiYXJib3JrIHByZWJhcmJvcmsgIGxlYWRwcmViYXIKICAgICAgbGVhZCBlbmQgbGVhZGVuZCAgbGVhZG1pZGRsZWVuZApiYWQ6IG1lZSBtZWVhMiBwcmFiYXIgcHJvYmFyYmlyayBtaWRkbGUgbGVhZG1pZGRsZSBtaWRkbGVlbmQgZW5kbGVhZAoJbGVhZHByb2JhcgpiYWRlbmQKCjdhZmZzdGFydApTRVQgSVNPODg1OS0xCgpGT0wgIODh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CkxPVyAg4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KVVBQICDAwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7f/woKRkxBRyBudW0KCk5FRURBRkZJWCA5OTk5CgpDT01QT1VORFJVTEUgMiw3NyoxMjMKCk5FRURDT01QT1VORCAxCkNPTVBPVU5EUEVSTUlURkxBRyA0MzIKClNGWCA2MTAwMyBZIDEKU0ZYIDYxMDAzIDAgbWVhdCAuCgpTRlggMzkxIFkgMQpTRlggMzkxIDAgYTEgLgoKU0ZYIDExMSBZIDEKU0ZYIDExMSAwIGHpIC4KClBGWCAxNyBZIDEKUEZYIDE3IDAgcHJlLzQzMiAuCjdhZmZlbmQKCjdkaWNzdGFydAoxMjM0Cm1lZS8zOTEsMTExLDk5OTkKYmFyLzE3LDYxMDAzLDEyMwpsZWFkLzIKdGFpbC8xMjMKbWlkZGxlLzc3LDEKN2RpY2VuZAoKN2dvb2Q6IG1lZWExIG1lZWHDqSBiYXIgcHJlYmFyIGJhcm1lYXQgcHJlYmFybWVhdCAgbGVhZHByZWJhcgogICAgICBsZWFkIHRhaWwgbGVhZHRhaWwgIGxlYWRtaWRkbGV0YWlsCmJhZDogbWVlIG1lZWEyIHByYWJhciBwcm9iYXJtYWF0IG1pZGRsZSBsZWFkbWlkZGxlIG1pZGRsZXRhaWwgdGFpbGxlYWQKCWxlYWRwcm9iYXIKYmFkZW5kCgp0ZXN0IG91dHB1dDoK